blob: 891430790c409ce5c3b5e29e7190408151b2bd40 [file] [log] [blame]
2017-08-01 Devin Rousso <drousso@apple.com>
Web Inspector: simplify WebInspector with WI
https://bugs.webkit.org/show_bug.cgi?id=175058
Reviewed by Joseph Pecoraro.
* .eslintrc:
* Tools/PrettyPrinting/FormatterDebug.js:
* Tools/PrettyPrinting/index.html:
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Base/*.js:
* UserInterface/Controllers/*.js:
* UserInterface/Debug/*.js:
* UserInterface/Models/*.js:
* UserInterface/Protocol/*.js:
* UserInterface/Proxies/*.js:
* UserInterface/Test/*.js:
* UserInterface/Views/*.js:
2017-08-01 Devin Rousso <drousso@apple.com>
Web Inspector: create Recording tab for displaying recordings
https://bugs.webkit.org/show_bug.cgi?id=174484
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.recordingFinished):
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.prototype.toggleRecording):
* UserInterface/Models/Recording.js:
(WebInspector.Recording):
(WebInspector.Recording.synthesizeError):
(WebInspector.Recording.prototype.get actions):
(WebInspector.Recording.prototype.get source):
(WebInspector.Recording.prototype.set source):
(WebInspector.Recording.prototype.swizzle):
* UserInterface/Models/RecordingAction.js:
(WebInspector.RecordingAction):
(WebInspector.RecordingAction.isFunctionForType):
(WebInspector.RecordingAction.get name):
(WebInspector.RecordingAction.get parameters):
(WebInspector.RecordingAction.prototype.get valid):
(WebInspector.RecordingAction.prototype.set valid):
(WebInspector.RecordingAction.get isFunction):
(WebInspector.RecordingAction.get isGetter):
(WebInspector.RecordingAction.get isVisual):
(WebInspector.RecordingAction.get stateModifiers):
(WebInspector.RecordingAction.prototype.swizzle):
(WebInspector.RecordingAction.prototype.parameterSwizzleTypeForTypeAtIndex):
* UserInterface/Models/RecordingInitialStateAction.js: Added.
(WebInspector.RecordingInitialStateAction):
* UserInterface/Views/RecordingTabContentView.js: Added.
(WebInspector.RecordingTabContentView):
(WebInspector.RecordingTabContentView.tabInfo):
(WebInspector.RecordingTabContentView.prototype.get type):
(WebInspector.RecordingTabContentView.prototype.canShowRepresentedObject):
(WebInspector.RecordingTabContentView.prototype.showRepresentedObject):
(WebInspector.RecordingTabContentView.prototype.restoreStateFromCookie):
(WebInspector.RecordingTabContentView.prototype.saveStateToCookie):
(WebInspector.RecordingTabContentView.prototype.closed):
(WebInspector.RecordingTabContentView.prototype._updateActionIndex):
(WebInspector.RecordingTabContentView.prototype._scrubberNavigationItemValueChanged):
(WebInspector.RecordingTabContentView.prototype._navigationSidebarImport):
(WebInspector.RecordingTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged):
* UserInterface/Views/RecordingContentView.js: Added.
(WebInspector.RecordingContentView):
(WebInspector.RecordingContentView.prototype.get navigationItems):
(WebInspector.RecordingContentView.prototype.updateActionIndex):
(WebInspector.RecordingContentView.prototype.shown):
(WebInspector.RecordingContentView.prototype.get supplementalRepresentedObjects):
(WebInspector.RecordingContentView.prototype._generateContentCanvas2D):
(WebInspector.RecordingContentView.prototype._applyAction):
(WebInspector.RecordingContentView.prototype._updateImageGrid):
(WebInspector.RecordingContentView.prototype._showGridButtonClicked):
* UserInterface/Views/RecordingContentView.css: Copied from Source/WebInspectorUI/UserInterface/Views/CanvasContentView.css.
(.content-view:not(.tab).recording):
(.content-view:not(.tab).recording > .preview-container):
(.content-view:not(.tab).recording canvas):
* UserInterface/Views/RecordingNavigationSidebarPanel.js: Added.
(WebInspector.RecordingNavigationSidebarPanel):
(WebInspector.RecordingNavigationSidebarPanel.disallowInstanceForClass):
(WebInspector.RecordingNavigationSidebarPanel.prototype.set recording):
(WebInspector.RecordingNavigationSidebarPanel.prototype.updateActionIndex):
(WebInspector.RecordingNavigationSidebarPanel.prototype.initialLayout):
(WebInspector.RecordingNavigationSidebarPanel.prototype._importNavigationItemClicked):
(WebInspector.RecordingNavigationSidebarPanel.prototype._exportNavigationItemClicked):
* UserInterface/Views/RecordingNavigationSidebarPanel.css: Added.
(.sidebar > .panel.navigation.recording > :matches(.content, .empty-content-placeholder)):
(.sidebar > .panel.navigation.recording > .content > .tree-outline):
(.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action, .selected).expanded):
(.sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
(body[dir=ltr] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
(body[dir=rtl] .sidebar > .panel.navigation.recording > .content > .tree-outline .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="2"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="3"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="4"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="5"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="6"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content > .tree-outline[data-indent="7"] .item.action:not(.initial-state)::before):
(.sidebar > .panel.navigation.recording > .content .action > .icon):
(.sidebar > .panel.navigation.recording > .content .action.function > .icon):
(.sidebar > .panel.navigation.recording > .content .action.attribute.getter > .icon):
(.sidebar > .panel.navigation.recording > .content .tree-outline:matches(:focus, .force-focus) .action.attribute.getter.selected > .icon):
(.sidebar > .panel.navigation.recording > .content .action.attribute.boolean > .icon):
(.sidebar > .panel.navigation.recording > .content .action.attribute.number > .icon):
(.sidebar > .panel.navigation.recording > .content .action.attribute.object > .icon):
(.sidebar > .panel.navigation.recording > .content .action.attribute.string > .icon):
(.sidebar > .panel.navigation.recording > .content > .tree-outline > .item.parent:not(.action) > .icon):
(.sidebar > .panel.navigation.recording > .content .action:matches(.invalid, .missing) > .icon):
(body[dir=ltr] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon):
(body[dir=rtl] .sidebar > .panel.navigation.recording > .content .action:not(.initial-state) > .icon):
(.sidebar > .panel.navigation.recording > .content .action.visual:not(.selected, .invalid)):
(.sidebar > .panel.navigation.recording > .content .action:not(.selected, .initial-state) > .titles .parameter.swizzled):
(.sidebar > .panel.navigation.recording > .content .action.invalid:not(.selected, .initial-state) > .titles .name,):
* UserInterface/Views/RecordingStateDetailsSidebarPanel.js: Added.
(WebInspector.RecordingStateDetailsSidebarPanel):
(WebInspector.RecordingStateDetailsSidebarPanel.disallowInstanceForClass):
(WebInspector.RecordingStateDetailsSidebarPanel.prototype.inspect):
(WebInspector.RecordingStateDetailsSidebarPanel.prototype.set recording):
(WebInspector.RecordingStateDetailsSidebarPanel.prototype.updateActionIndex):
(WebInspector.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
* UserInterface/Views/RecordingStateDetailsSidebarPanel.css: Added.
(.sidebar > .panel.details.recording-state > .content > .data-grid):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected).non-standard):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected) .unavailable):
* UserInterface/Views/RecordingActionTreeElement.js: Added.
(WebInspector.RecordingActionTreeElement):
(WebInspector.RecordingActionTreeElement._generateDOM):
(WebInspector.RecordingActionTreeElement.prototype.get index):
(WebInspector.RecordingActionTreeElement.get filterableData):
(WebInspector.RecordingActionTreeElement.prototype.get filterableData):
(WebInspector.RecordingActionTreeElement.prototype.onattach):
(WebInspector.RecordingActionTreeElement.prototype.populateContextMenu):
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector.instanceForClass):
* UserInterface/Base/FileUtilites.js: Added.
(WebInspector.saveDataToFile): Moved from UserInterface/Base/Main.js
(WebInspector.loadDataFromFile):
* UserInterface/Views/ButtonNavigationItem.js:
(WebInspector.ButtonNavigationItem.prototype._mouseClicked):
Send the native event as part of the data.
* UserInterface/Views/CanvasContentView.js:
(WebInspector.CanvasContentView):
(WebInspector.CanvasContentView.prototype.get navigationItems):
(WebInspector.CanvasContentView.prototype.initialLayout):
(WebInspector.CanvasContentView.prototype.closed):
(WebInspector.CanvasContentView.prototype._toggleRecording):
(WebInspector.CanvasContentView.prototype._recordingFinished):
* UserInterface/Views/CanvasContentView.css:
(.content-view.canvas):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel.prototype.inspect):
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):
* UserInterface/Views/ScrubberNavigationItem.js: Added.
(WebInspector.ScrubberNavigationItem):
(WebInspector.ScrubberNavigationItem.prototype.get value):
(WebInspector.ScrubberNavigationItem.prototype.set value):
(WebInspector.ScrubberNavigationItem.prototype.get min):
(WebInspector.ScrubberNavigationItem.prototype.set min):
(WebInspector.ScrubberNavigationItem.prototype.get max):
(WebInspector.ScrubberNavigationItem.prototype.set max):
(WebInspector.ScrubberNavigationItem.prototype.set disabled):
(WebInspector.ScrubberNavigationItem.prototype.get additionalClassNames):
(WebInspector.ScrubberNavigationItem.prototype._sliderChanged):
* UserInterface/Views/ScrubberNavigationItem.css: Added.
(.navigation-bar .item.scrubber):
(.navigation-bar .item.scrubber > input):
(.navigation-bar .item.scrubber > input[disabled]):
Allow the flexible space to be replaced with a navigation item at construction.
* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode):
(WebInspector.DataGridNode.prototype.get element):
Allow a list of CSS classes to be added to the node's element.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
(WebInspector.SettingsTabContentView.prototype._createExperimentalSettingsView):
(WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
Move experimental settings to their own panel.
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):
Save the NavigationSidebarPanel after it's constructed.
* UserInterface/Base/Utilities.js:
(Number.countDigits):
* UserInterface/Images/Recording.svg: Added.
* UserInterface/Images/RenderingFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/TimelineRecordRenderingFrame.svg.
* UserInterface/Images/gtk/RenderingFrame.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/gtk/TimelineRecordRenderingFrame.svg.
* UserInterface/Views/TimelineIcons.css:
(.rendering-frame-record .icon):
* UserInterface/Views/DOMTreeOutline.css:
(@keyframes node-state-changed):
* UserInterface/Views/Main.css:
(:matches(img, canvas).show-grid):
(img.show-grid): Deleted.
* UserInterface/Views/NavigationBar.css:
(.navigation-bar):
* UserInterface/Views/NetworkSidebarPanel.css:
(.sidebar > .panel.navigation.network.network-grid-content-view-showing > .content > .tree-outline):
* UserInterface/Views/TimelineTabContentView.css:
(.timeline.tab.content-view .navigation-bar > .item.radio):
* UserInterface/Views/TimelineView.css:
(.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .tree-outline):
* UserInterface/Views/Variables.css:
(:root):
Create CSS variables for the DOM modification flash color and the color striping.
2017-07-28 Devin Rousso <drousso@apple.com>
Web Inspector: Cleanup unused/invalid parameters for TreeElements
https://bugs.webkit.org/show_bug.cgi?id=173987
Reviewed by Brian Burg.
* UserInterface/Views/TreeElement.js:
* UserInterface/Views/GeneralTreeElement.js:
* UserInterface/Views/ApplicationCacheFrameTreeElement.js:
* UserInterface/Views/BreakpointTreeElement.js:
* UserInterface/Views/CSSStyleSheetTreeElement.js:
* UserInterface/Views/CallFrameTreeElement.js:
* UserInterface/Views/ContentFlowTreeElement.js:
* UserInterface/Views/DOMNodeTreeElement.js:
* UserInterface/Views/DatabaseTableTreeElement.js:
* UserInterface/Views/DatabaseTreeElement.js:
* UserInterface/Views/FolderTreeElement.js:
* UserInterface/Views/FolderizedTreeElement.js:
* UserInterface/Views/FrameTreeElement.js:
* UserInterface/Views/IndexedDatabaseObjectStoreIndexTreeElement.js:
* UserInterface/Views/IndexedDatabaseObjectStoreTreeElement.js:
* UserInterface/Views/IndexedDatabaseTreeElement.js:
* UserInterface/Views/IssueTreeElement.js:
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
* UserInterface/Views/ProfileNodeTreeElement.js:
* UserInterface/Views/ResourceTreeElement.js:
* UserInterface/Views/ScriptTreeElement.js:
* UserInterface/Views/SearchResultTreeElement.js:
* UserInterface/Views/SourceCodeTreeElement.js:
* UserInterface/Views/SourceMapResourceTreeElement.js:
* UserInterface/Views/StorageTreeElement.js:
* UserInterface/Views/TimelineRecordTreeElement.js:
* UserInterface/Views/TypeTreeElement.js:
2017-07-26 Devin Rousso <drousso@apple.com>
Uncaught Exception: undefined is not an object (evaluating 'this._memoryRow.value = Number.bytesToString(this._canvas.memoryCost)')
https://bugs.webkit.org/show_bug.cgi?id=174823
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
Early return if the view has not called initialLayout, as the rows might not have been
constructed yet.
* UserInterface/Views/View.js:
(WebInspector.View.prototype.get didInitialLayout): Added.
2017-07-26 Devin Rousso <drousso@apple.com>
Web Inspector: create protocol for recording Canvas contexts
https://bugs.webkit.org/show_bug.cgi?id=174481
Reviewed by Joseph Pecoraro.
Create model objects that effectively mirror the protocol objects sent for Canvas recordings.
* .eslintrc:
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.recordingFinished):
* UserInterface/Protocol/CanvasObserver.js:
(WebInspector.CanvasObserver.prototype.recordingFinished):
* UserInterface/Models/Recording.js: Added.
(WebInspector.Recording):
(WebInspector.Recording.fromPayload):
(WebInspector.Recording.prototype.get type):
(WebInspector.Recording.prototype.get initialState):
(WebInspector.Recording.prototype.get frames):
(WebInspector.Recording.prototype.get data):
(WebInspector.Recording.prototype.toJSON):
* UserInterface/Models/RecordingAction.js: Added.
(WebInspector.RecordingAction):
(WebInspector.RecordingAction.fromPayload):
(WebInspector.RecordingAction.prototype.get name):
(WebInspector.RecordingAction.prototype.get parameters):
(WebInspector.RecordingAction.prototype.toJSON):
* UserInterface/Models/RecordingFrame.js: Added.
(WebInspector.RecordingFrame):
(WebInspector.RecordingFrame.fromPayload):
(WebInspector.RecordingFrame.prototype.get actions):
(WebInspector.RecordingFrame.prototype.get incomplete):
(WebInspector.RecordingFrame.prototype.toJSON):
2017-07-26 Brian Burg <bburg@apple.com>
Remove WEB_TIMING feature flag
https://bugs.webkit.org/show_bug.cgi?id=174795
Reviewed by Alex Christensen.
Remove fallback for ports that lack WEB_TIMING.
* UserInterface/Base/Utilities.js:
(timestamp): Deleted.
* UserInterface/Protocol/Connection.js:
(InspectorBackend.Connection.prototype._dispatchResponse):
(InspectorBackend.Connection.prototype._dispatchEvent):
(InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
(InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
* UserInterface/Protocol/MessageDispatcher.js:
(WebInspector.dispatchNextQueuedMessageFromBackend):
2017-07-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Don't output "No message" for multi-value logs like console.log(x, y)
https://bugs.webkit.org/show_bug.cgi?id=174842
Reviewed by Matt Baker.
* Localizations/en.lproj/localizedStrings.js:
Removed "No message".
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
Track whether or not outputting the next parameter will need a divider
in front of it or not.
2017-07-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix warnings about console.assert lines without semicolons
https://bugs.webkit.org/show_bug.cgi?id=174840
Reviewed by Brian Burg.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
(WebInspector.SettingsTabContentView.prototype.setSettingsViewVisible):
Add semicolon to assert lines so they can be stripped in optimized builds.
2017-07-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inline multiple console log values if they are simple
https://bugs.webkit.org/show_bug.cgi?id=174746
<rdar://problem/33469376>
Reviewed by Matt Baker.
* UserInterface/Models/IssueMessage.js:
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.type): Deleted.
Remove this as it isn't as useful as directly checking the type.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendExtraParameters):
(WebInspector.ConsoleMessageView.prototype._appendFormattedArguments):
(WebInspector.ConsoleMessageView.prototype._hasSimpleDisplay):
(WebInspector.ConsoleMessageView.prototype._isStackTrace):
For leading primitive/simple values, display them inline on the console message.
* UserInterface/Views/FormattedValue.js:
(WebInspector.FormattedValue.hasSimpleDisplay):
Provide a helper to determine if a formatted value will be simple.
2017-07-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Styles: Add a switch for Spreadsheet model style editor to experimental settings
https://bugs.webkit.org/show_bug.cgi?id=174741
<rdar://problem/33467954>
Reviewed by Brian Burg.
Show a blank panel when Spreadsheet Style Editor is enabled.
* UserInterface/Base/Setting.js:
* UserInterface/Main.html:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.computedStyleDetailsPanelShowProperty):
* UserInterface/Views/RulesStyleSpreadsheetDetailsPanel.js: Added.
(WebInspector.RulesStyleSpreadsheetDetailsPanel):
(WebInspector.RulesStyleSpreadsheetDetailsPanel.prototype.filterDidChange):
(WebInspector.RulesStyleSpreadsheetDetailsPanel.prototype.scrollToSectionAndHighlightProperty):
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .settings-view > .container.hidden):
(.content-view.settings > .settings-view > .container-centered):
(.content-view.settings > .settings-view > .container button):
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
* UserInterface/Views/SettingsView.js:
(WebInspector.SettingsView.prototype.addCenteredContainer):
(WebInspector.SettingsView):
Show "Reload Web Inspector" button when Spreadsheet Style Editor setting is modified.
2017-07-25 Devin Rousso <drousso@apple.com>
Web Inspector: add context menu item for taking a screenshot of a node
https://bugs.webkit.org/show_bug.cgi?id=174754
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForDOMNode):
Add "Capture Element Screenshot " context menu item that opens a save dialog with a picture of the node.
* UserInterface/Base/Main.js:
(WebInspector.saveDataToFile):
Allow the saveData to specify whether the contained content is base64Encoded, instead of
having to go through a Blob to save base64 data.
* UserInterface/Base/Utilities.js:
Add Number.pad to add leading zeros up to a certain width.
Drive-by: fix failing test for Number.constrain.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.scrollIntoView.resolvedNode.scrollIntoView): Added.
(WebInspector.DOMNode.prototype.scrollIntoView.resolvedNode): Added.
(WebInspector.DOMNode.prototype.scrollIntoView): Added.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode.scrollIntoView): Deleted.
(WebInspector.DOMTreeElement.prototype._scrollIntoView.resolvedNode): Deleted.
(WebInspector.DOMTreeElement.prototype._scrollIntoView): Deleted.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
Drive-by: move "Scroll Into View" context menu command to WebInspector.appendContextMenuItemsForDOMNode
so that it can be triggered from more places than just the DOM tree.
2017-07-24 Nikita Vasilyev <me@elv1s.ru>
Web Inspector: Settings: Some controls overlay settings header
https://bugs.webkit.org/show_bug.cgi?id=174804
Reviewed by Matt Baker.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings .navigation-bar):
2017-07-24 Matt Baker <mattbaker@apple.com>
Web Inspector: should only show Canvases in resource type filter if debug setting enabled
https://bugs.webkit.org/show_bug.cgi?id=174765
<rdar://problem/33479009>
Reviewed by Devin Rousso.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
2017-07-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: inspect(aFunction) should jump to function definition
https://bugs.webkit.org/show_bug.cgi?id=149344
<rdar://problem/11563607>
Reviewed by Matt Baker.
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.inspect):
If we receive a function remote object jump to its location if available.
2017-07-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Avoid subclassing WebInspector.Object if we do not need to
https://bugs.webkit.org/show_bug.cgi?id=174703
Reviewed by Brian Burg.
* UserInterface/Models/LogObject.js:
(WebInspector.LogObject):
(WebInspector.LogObject.prototype.get startDate): Deleted.
Remove unused startDate property as well.
* UserInterface/Base/YieldableTask.js:
* UserInterface/Debug/ProtocolTrace.js:
* UserInterface/Models/AnalyzerMessage.js:
* UserInterface/Models/ApplicationCacheFrame.js:
* UserInterface/Models/ApplicationCacheManifest.js:
* UserInterface/Models/BackForwardEntry.js:
* UserInterface/Models/Branch.js:
* UserInterface/Models/BreakpointAction.js:
* UserInterface/Models/CSSMedia.js:
* UserInterface/Models/CSSSelector.js:
* UserInterface/Models/CallFrame.js:
* UserInterface/Models/CallingContextTree.js:
* UserInterface/Models/CallingContextTreeNode.js:
* UserInterface/Models/CollectionEntry.js:
* UserInterface/Models/CollectionEntryPreview.js:
* UserInterface/Models/ConsoleMessage.js:
* UserInterface/Models/DOMSearchMatchObject.js:
* UserInterface/Models/DatabaseObject.js:
* UserInterface/Models/DatabaseTableObject.js:
* UserInterface/Models/DebuggerDashboard.js:
* UserInterface/Models/DebuggerData.js:
* UserInterface/Models/ExecutionContext.js:
* UserInterface/Models/ExecutionContextList.js:
* UserInterface/Models/GarbageCollection.js:
* UserInterface/Models/HeapSnapshotRootPath.js:
* UserInterface/Models/IndexedDatabase.js:
* UserInterface/Models/IndexedDatabaseObjectStore.js:
* UserInterface/Models/IndexedDatabaseObjectStoreIndex.js:
* UserInterface/Models/Instrument.js:
* UserInterface/Models/KeyboardShortcut.js:
* UserInterface/Models/LineWidget.js:
* UserInterface/Models/MemoryCategory.js:
* UserInterface/Models/MemoryPressureEvent.js:
* UserInterface/Models/ObjectPreview.js:
* UserInterface/Models/Probe.js:
* UserInterface/Models/ProbeSetDataFrame.js:
* UserInterface/Models/Profile.js:
* UserInterface/Models/ProfileNode.js:
* UserInterface/Models/ProfileNodeCall.js:
* UserInterface/Models/PropertyDescriptor.js:
* UserInterface/Models/PropertyPath.js:
* UserInterface/Models/PropertyPreview.js:
* UserInterface/Models/ResourceQueryMatch.js:
* UserInterface/Models/ResourceQueryResult.js:
* UserInterface/Models/ResourceTimingData.js:
* UserInterface/Models/Revision.js:
* UserInterface/Models/ScopeChainNode.js:
* UserInterface/Models/ScriptSyntaxTree.js:
* UserInterface/Models/SourceCodePosition.js:
* UserInterface/Models/SourceCodeSearchMatchObject.js:
* UserInterface/Models/SourceMap.js:
* UserInterface/Models/StackTrace.js:
* UserInterface/Models/StructureDescription.js:
* UserInterface/Models/TextMarker.js:
* UserInterface/Models/TextRange.js:
* UserInterface/Models/TimelineRange.js:
* UserInterface/Models/TypeDescription.js:
* UserInterface/Models/TypeSet.js:
* UserInterface/Protocol/ProtocolTracer.js:
* UserInterface/Proxies/FormatterWorkerProxy.js:
* UserInterface/Proxies/HeapSnapshotDiffProxy.js:
* UserInterface/Proxies/HeapSnapshotWorkerProxy.js:
* UserInterface/Test/TestSuite.js:
2017-07-19 Chris Dumez <cdumez@apple.com>
Drop SQLException type
https://bugs.webkit.org/show_bug.cgi?id=174665
Reviewed by Sam Weinig.
Use SQLError instead of SQLException, this is what the script should really
use here since it is checking the code of an SQLError.
* .eslintrc:
* UserInterface/Models/DatabaseObject.js:
(WebInspector.DatabaseObject.prototype.executeSQL.queryCallback):
(WebInspector.DatabaseObject.prototype.executeSQL):
(WebInspector.DatabaseObject):
2017-07-18 Andy Estes <aestes@apple.com>
[Xcode] Enable CLANG_WARN_RANGE_LOOP_ANALYSIS
https://bugs.webkit.org/show_bug.cgi?id=174631
Reviewed by Tim Horton.
* Configurations/Base.xcconfig:
2017-07-18 Andy Estes <aestes@apple.com>
[Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION
https://bugs.webkit.org/show_bug.cgi?id=174631
Reviewed by Sam Weinig.
* Configurations/Base.xcconfig:
2017-07-18 Brian Burg <bburg@apple.com>
Web Inspector: adjust wording of "clear when page {navigates -> loads}"
https://bugs.webkit.org/show_bug.cgi?id=174589
<rdar://problem/32797981>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype._createGeneralSettingsView):
2017-07-18 Andy Estes <aestes@apple.com>
[Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION
https://bugs.webkit.org/show_bug.cgi?id=174631
Reviewed by Dan Bernstein.
* Configurations/Base.xcconfig:
2017-07-18 Andy Estes <aestes@apple.com>
[Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING
https://bugs.webkit.org/show_bug.cgi?id=174631
Reviewed by Darin Adler.
* Configurations/Base.xcconfig:
2017-07-13 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused and untested Page domain commands
https://bugs.webkit.org/show_bug.cgi?id=174429
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-10.3.json:
* Versions/Inspector-iOS-11.0.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
2017-07-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Correct a typo in the .eslintrc
https://bugs.webkit.org/show_bug.cgi?id=174389
Reviewed by Matt Baker.
* .eslintrc:
2017-07-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Node Sidebar - Improve wording for Potential Custom Element lacking a Custom definition
https://bugs.webkit.org/show_bug.cgi?id=174346
Reviewed by Matt Baker.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementState):
The text "Waiting to be upgraded" is poor. Any non-standard element with dashes
in the name is considered custom, but does not need to be upgraded. Lets use
different wording to indicate that it is detected as custom, and lacks a
specific Custom Element definition.
2017-07-10 Devin Rousso <drousso@apple.com>
Web Inspector: Highlight matching CSS canvas clients when hovering contexts in the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=174279
Reviewed by Matt Baker.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.highlightDOMNodeList):
(WebInspector.DOMTreeManager.prototype.highlightSelector):
* UserInterface/Views/CanvasTreeElement.js:
(WebInspector.CanvasTreeElement.prototype._handleMouseOver):
2017-07-03 Brian Burg <bburg@apple.com>
Web Replay: remove some unused code
https://bugs.webkit.org/show_bug.cgi?id=173903
Rubber-stamped by Joseph Pecoraro.
* .eslintrc:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Controllers/DashboardManager.js:
(WebInspector.DashboardManager):
* UserInterface/Controllers/ReplayManager.js: Removed.
* UserInterface/Images/ReplayPauseButton.svg: Removed.
* UserInterface/Images/ReplayPlayButton.svg: Removed.
* UserInterface/Images/ReplayRecordingButton.svg: Removed.
* UserInterface/Images/gtk/ReplayPauseButton.svg: Removed.
* UserInterface/Images/gtk/ReplayPlayButton.svg: Removed.
* UserInterface/Images/gtk/ReplayRecordingButton.svg: Removed.
* UserInterface/Main.html:
* UserInterface/Models/ReplayDashboard.js: Removed.
* UserInterface/Models/ReplaySession.js: Removed.
* UserInterface/Models/ReplaySessionSegment.js: Removed.
* UserInterface/Protocol/ReplayObserver.js: Removed.
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
* UserInterface/Views/DashboardView.js:
(WebInspector.DashboardView.create):
* UserInterface/Views/ReplayDashboardView.css: Removed.
* UserInterface/Views/ReplayDashboardView.js: Removed.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
(WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
2017-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Resources are sometimes missing from the tree outline right before folderizing
https://bugs.webkit.org/show_bug.cgi?id=174277
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.expand):
2017-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: REGRESSION(r217258): WebSocket resource tree elements don't show the connection status
https://bugs.webkit.org/show_bug.cgi?id=174274
Reviewed by Brian Burg.
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.populateContextMenu):
* UserInterface/Views/WebSocketResourceTreeElement.js:
(WebInspector.WebSocketResourceTreeElement.prototype.populateContextMenu):
Move "Log WebSocket" context menu item to WebSocketResourceTreeElement.
2017-07-07 Devin Rousso <drousso@apple.com>
Web Inspector: Show all elements currently using a given CSS Canvas
https://bugs.webkit.org/show_bug.cgi?id=173965
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.cssCanvasClientNodesChanged):
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.prototype.requestCSSCanvasClientNodes):
(WebInspector.Canvas.prototype.cssCanvasClientNodesChanged):
* UserInterface/Protocol/CanvasObserver.js:
(WebInspector.CanvasObserver.prototype.cssCanvasClientNodesChanged):
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel):
(WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
Add CSS section for CSS canvases. Currently displays a list of node links, each of which is
using the selected canvas via -webkit-canvas.
* UserInterface/Main.html:
* UserInterface/Views/CanvasDetailsSidebarPanel.css: Added.
(.sidebar > .panel.details.canvas .details-section > .content .row.simple > .value > .node-link):
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype.ensureDocument):
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.prototype.requestNode):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch):
Add convenience function that will call DOMAgent.getDocument with an empty function. Should
be used when it is necessary that the document has been sent to the frontend, but the
document node itself is not needed.
2017-07-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clean up some unnecessary constructors
https://bugs.webkit.org/show_bug.cgi?id=174236
Reviewed by Brian Burg.
* UserInterface/Controllers/CodeMirrorBezierEditingController.js:
* UserInterface/Controllers/CodeMirrorColorEditingController.js:
* UserInterface/Controllers/CodeMirrorGradientEditingController.js:
* UserInterface/Views/DividerNavigationItem.js:
* UserInterface/Views/FlexibleSpaceNavigationItem.js:
* UserInterface/Views/IdleTreeElement.js:
2017-07-06 Devin Rousso <drousso@apple.com>
Web Inspector: Highlight matching canvas element when hovering contexts in the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=174209
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CanvasTreeElement.js:
(WebInspector.CanvasTreeElement.prototype.onattach):
(WebInspector.CanvasTreeElement.prototype._handleMouseOver):
(WebInspector.CanvasTreeElement.prototype._handleMouseOut):
2017-07-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add another Protocol Version
https://bugs.webkit.org/show_bug.cgi?id=174193
<rdar://problem/33150053>
Reviewed by Brian Burg.
* UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: Added.
* Versions/Inspector-iOS-11.0.json: Added.
2017-07-05 Devin Rousso <drousso@apple.com>
Web Inspector: Group Inspector Style Sheets as part of the Stylesheets folder
https://bugs.webkit.org/show_bug.cgi?id=173435
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
Add special case for CSSStyleSheetTreeElement.
2017-07-05 Devin Rousso <drousso@apple.com>
Web Inspector: Split Canvas.svg into icons for 2D and 3D
https://bugs.webkit.org/show_bug.cgi?id=174057
Reviewed by Matt Baker.
* UserInterface/Images/Canvas2D.svg: Added.
* UserInterface/Images/Canvas3D.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/Canvas.svg.
* UserInterface/Views/ResourceIcons.css:
(.canvas.canvas-2d .icon):
(.canvas:matches(.webgl, .webgl2, .webgpu) .icon):
(.canvas .icon): Deleted.
2017-07-05 Devin Rousso <drousso@apple.com>
Web Inspector: Allow users to log any tracked canvas context
https://bugs.webkit.org/show_bug.cgi?id=173397
<rdar://problem/33111581>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.resolveCanvasContext):
* UserInterface/Views/CanvasTreeElement.js:
(WebInspector.CanvasTreeElement.prototype.populateContextMenu):
2017-07-03 Devin Rousso <drousso@apple.com>
Web Inspector: Support listing WebGL2 and WebGPU contexts
https://bugs.webkit.org/show_bug.cgi?id=173396
Reviewed by Joseph Pecoraro.
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.displayNameForContextType):
2017-07-01 Dan Bernstein <mitz@apple.com>
[macOS] Remove code only needed when building for OS X Yosemite
https://bugs.webkit.org/show_bug.cgi?id=174067
Reviewed by Tim Horton.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2017-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Type token background color in debugger looks poor
https://bugs.webkit.org/show_bug.cgi?id=174063
Reviewed by Devin Rousso.
* UserInterface/Views/TextEditor.css:
CodeMirror widgets do not get range styles like our (.execution-range-highlight).
Make a best effort to carry over the styles to widgets. It isn't perfect, but it
covers all common situations unless a selection ends inside the widget. The
ultimate solution would be to get the expected range styles.
2017-06-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Initial search is sometimes performed twice, produces duplicate results
https://bugs.webkit.org/show_bug.cgi?id=174047
Reviewed by Devin Rousso.
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.performSearch):
The initial layout of the tab content view was setting state to force a search
which may happen after a delay, however the global search field was causing
its own search to happen. We can clear the flag when a search is being performed
to prevent duplicating the search.
2017-06-30 Devin Rousso <drousso@apple.com>
Web Inspector: Add small delay before showing the progress spinner when loading resources
https://bugs.webkit.org/show_bug.cgi?id=173437
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype.removeLoadingIndicator): Added.
(WebInspector.ResourceContentView.prototype._contentError):
(WebInspector.ResourceContentView.prototype._hasContent):
Delay the creation of the spinner for 100ms. If the content is available before then, just
clear the timeout and the spinner will never be created/shown.
We measured an average of 35ms to load and display images with slow cases being around 55ms.
100ms was chosen for the timeout to give some room to allow for abnormally slow loading
while not being too long as to be outright noticable.
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView.prototype.contentAvailable):
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView.prototype.contentAvailable):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
Calls the new protected function removeLoadingIndicator to ensure that the spinner (and any
other element) is removed.
This is necessary because TextResourceContentView effectively has two phases of loading its
content: getting the content and formatting it for display. The first follows the same path
as the other ResourceContentView subclasses, the second waits for the ContentWillPopulate
event on SourceCodeTextEditor before it actually adds the content as a subview. In this
case, the spinner should only be removed right before the content is actually added, not
once it's ready.
2017-06-30 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r218983.
https://bugs.webkit.org/show_bug.cgi?id=174042
Broke Debugger Call Stack TreeOutline (Requested by drousso on
#webkit).
Reverted changeset:
"Web Inspector: Remove unnecessary hasChildren from
TreeOutline"
https://bugs.webkit.org/show_bug.cgi?id=173986
http://trac.webkit.org/changeset/218983
2017-06-30 Devin Rousso <drousso@apple.com>
Web Inspector: Default string comparisons to treat numeric characters as numbers
https://bugs.webkit.org/show_bug.cgi?id=173984
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Utilities.js:
(String.prototype.extendedLocaleCompare):
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
(WebInspector.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames.compare):
* UserInterface/Controllers/ResourceQueryController.js:
(WebInspector.ResourceQueryController.prototype.executeQuery):
* UserInterface/Views/ApplicationCacheFrameContentView.js:
(WebInspector.ApplicationCacheFrameContentView.prototype._sortDataGrid.localeCompare):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._iterateOverProperties):
* UserInterface/Views/CookieStorageContentView.js:
(WebInspector.CookieStorageContentView.prototype._sortDataGrid.localeCompare):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAttributes):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):
* UserInterface/Views/DOMStorageContentView.js:
(WebInspector.DOMStorageContentView.prototype._sortDataGrid.comparator):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
* UserInterface/Views/HeapSnapshotDataGridTree.js:
(WebInspector.HeapSnapshotDataGridTree.buildSortComparator):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
* UserInterface/Views/NewTabContentView.js:
(WebInspector.NewTabContentView.prototype._updateShownTabs):
* UserInterface/Views/OverviewTimelineView.js:
(WebInspector.OverviewTimelineView.prototype._compareDataGridNodesByStartTime):
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel.prototype.inspect):
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.sortDataGrid.comparator):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._compareTreeElements):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.compareResourceTreeElements):
(WebInspector.ResourceTreeElement.compareFolderAndResourceTreeElements):
* UserInterface/Views/ScriptDetailsTimelineView.js:
(WebInspector.ScriptDetailsTimelineView.prototype.dataGridSortComparator):
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel.prototype._compareTreeElements):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._sortComparator):
2017-06-29 Devin Rousso <drousso@apple.com>
Web Inspector: Provide a way for creating a new tab but not making it immediately selected
https://bugs.webkit.org/show_bug.cgi?id=173983
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.addTabBarItem):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype._handleClick):
(WebInspector.TabBar.prototype._handleNewTabClick):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.showTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._openDefaultTab):
(WebInspector._tryToRestorePendingTabs):
(WebInspector.showNewTabTab):
(WebInspector.createNewTabWithType):
Add `options` dictionaries instead of optional parameters.
(WebInspector.tabContentViewClassForRepresentedObject):
Drive-by fix: remove incorrect placement of WebInspector.Collection check. This function
determines TabContentView classes, not ContentView.
2017-06-29 Devin Rousso <drousso@apple.com>
Web Inspector: Remove unnecessary hasChildren from TreeOutline
https://bugs.webkit.org/show_bug.cgi?id=173986
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline):
(WebInspector.TreeOutline.prototype.appendChild):
(WebInspector.TreeOutline.prototype.insertChild):
(WebInspector.TreeOutline.prototype.removeChildAtIndex):
(WebInspector.TreeOutline.prototype.removeChild):
(WebInspector.TreeOutline.prototype.get selectedTreeElementIndex):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.get value):
2017-06-29 Devin Rousso <drousso@apple.com>
Web Inspector: Cleanup unused/invalid parameters for SidebarPanels
https://bugs.webkit.org/show_bug.cgi?id=173985
Reviewed by Joseph Pecoraro.
* UserInterface/Views/SidebarPanel.js:
* UserInterface/Views/NavigationSidebarPanel.js:
* UserInterface/Views/NavigationSidebarPanel.css:
(.sidebar > .panel.navigation > .overflow-shadow.top): Deleted.
* UserInterface/Views/DetailsSidebarPanel.js:
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
* UserInterface/Views/DOMDetailsSidebarPanel.js:
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
* UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
* UserInterface/Views/StorageSidebarPanel.js:
2017-06-29 Devin Rousso <drousso@apple.com>
Web Inspector: Create a single -webkit-canvas for use inside popovers
https://bugs.webkit.org/show_bug.cgi?id=173820
Reviewed by Matt Baker.
* UserInterface/Views/Popover.css:
(.popover):
* UserInterface/Views/Popover.js:
(WebInspector.Popover):
(WebInspector.Popover.prototype._drawBackground):
2017-06-28 Devin Rousso <drousso@apple.com>
Web Inspector: Instrument active pixel memory used by canvases
https://bugs.webkit.org/show_bug.cgi?id=173087
<rdar://problem/32719261>
Reviewed by Joseph Pecoraro.
* .eslintrc:
* UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.canvasMemoryChanged):
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.prototype.get memoryCost):
(WebInspector.Canvas.prototype.set memoryCost):
* UserInterface/Protocol/CanvasObserver.js:
(WebInspector.CanvasObserver.prototype.canvasMemoryChanged):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
(WebInspector.CanvasDetailsSidebarPanel.prototype._canvasMemoryChanged):
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Utilities.js:
(Number.bytesToString.value):
Add support for gigabyte numbers.
2017-06-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused Inspector domain events
https://bugs.webkit.org/show_bug.cgi?id=173905
Reviewed by Matt Baker.
* UserInterface/Protocol/InspectorObserver.js:
(WebInspector.InspectorObserver.prototype.detached): Deleted.
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-10.3.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
Remove from legacy backends as well since they did not send it.
2017-06-27 Matt Baker <mattbaker@apple.com>
Web Inspector: no discoverable way to dismiss the split console
https://bugs.webkit.org/show_bug.cgi?id=167034
<rdar://problem/30023436>
Reviewed by Devin Rousso.
This patch adds an Xcode-style toggle button to the left of the
split console navigation bar. Additionally, the split console code
has been broken out into it's own class to reduce the clutter in
Main.js/css, and simplify future console maintenance.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Replace the "split" ContentBrowser with a new ConsoleDrawer class,
which encapsulates the drawer height setting and resize behavior.
(WebInspector.contentLoaded):
The console drawer manages its own height.
* UserInterface/Images/HideConsoleDrawer.svg: Added.
* UserInterface/Images/ShowConsoleDrawer.svg: Added.
Console drawer toggle button images. Styled after corresponding Xcode button.
* UserInterface/Main.html:
* UserInterface/Views/ConsoleDrawer.css: Added.
Moved old #split-content-browser styles over from Main.css.
(.console-drawer):
(.console-drawer > .navigation-bar):
(.console-drawer > .navigation-bar > .item.button:not(.clear-log)):
Make button spacing less cramped.
(.console-drawer > .navigation-bar > .item:not(.flexible-space)):
(.console-drawer > .navigation-bar > :matches(.item.button, .log-scope-bar)):
(.console-drawer > .navigation-bar > .item > .glyph,):
* UserInterface/Views/ConsoleDrawer.js: Added.
New class responsible for console drawer expand / collapse and resizer
dragging, which was previously part of Main.js. The console drawer toolbar
now has a toggle button, debugging controls, and a call frames path item.
The "Show Console Tab" button has been removed.
(WebInspector.ConsoleDrawer):
(WebInspector.ConsoleDrawer.prototype.get collapsed):
(WebInspector.ConsoleDrawer.prototype.set collapsed):
(WebInspector.ConsoleDrawer.prototype.get height):
(WebInspector.ConsoleDrawer.prototype.shown):
(WebInspector.ConsoleDrawer.prototype.layout):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDrag):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown.dockedResizerDragEnd):
(WebInspector.ConsoleDrawer.prototype._consoleResizerMouseDown):
(WebInspector.ConsoleDrawer.prototype._restoreDrawerHeight):
(WebInspector.ConsoleDrawer.prototype._updateDrawerHeight):
(WebInspector.ConsoleDrawer.prototype._selectedTabContentViewDidChange):
When switching to a tab that doesn't support showing the console drawer,
hide it without altering the collapsed state.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.get navigationItems):
* UserInterface/Views/Main.css:
Renamed #split-content-browser to #console-drawer, and moved related
styles to ConsoleDrawer.css.
(#split-content-browser): Deleted.
(#split-content-browser > .navigation-bar): Deleted.
(#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)): Deleted.
(#split-content-browser > .navigation-bar .item): Deleted.
(#split-content-browser > .navigation-bar .item:not(.flexible-space)): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon .icon): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon .title): Deleted.
(#split-content-browser .hierarchical-path-component.log-icon select): Deleted.
(#split-content-browser > .navigation-bar > :matches(.hierarchical-path, .log-scope-bar)): Deleted.
(#split-content-browser > .navigation-bar > .log-scope-bar > li): Deleted.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype._toggleOrFocus):
(WebInspector.QuickConsole.prototype._updateStyles):
Update top border style in response to change in selected TabBrowser
tab or the console drawer collapsed state.
(WebInspector.QuickConsole.prototype.consoleLogVisibilityChanged): Deleted.
(WebInspector.QuickConsole.prototype.set keyboardShortcutDisabled): Deleted.
2017-06-24 Joseph Pecoraro <pecoraro@apple.com>
Remove Reflect.enumerate
https://bugs.webkit.org/show_bug.cgi?id=173806
Reviewed by Yusuke Suzuki.
* UserInterface/Models/NativeFunctionParameters.js:
2017-06-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Script Timeline bubbles sometimes appear to miss large events
https://bugs.webkit.org/show_bug.cgi?id=173746
<rdar://problem/32950808>
Reviewed by Brian Burg.
* UserInterface/Models/Timeline.js:
(WebInspector.Timeline.prototype.addRecord):
(WebInspector.Timeline.prototype._tryInsertInSortedOrder):
The list of records is assumed to be sorted by the code that draws bubbles
however the order in which we receive them may not be sorted. Make a quick
effort to sort recent records so that as we are drawing the timeline it is
more accurate.
2017-06-23 Brian Burg <bburg@apple.com>
Web Inspector: RTL: flip all go-to-arrow instances
https://bugs.webkit.org/show_bug.cgi?id=173794
<rdar://problem/32221912>
Reviewed by Joseph Pecoraro.
Move the flipping transform so it applies to all go-to arrows.
* UserInterface/Views/DataGrid.css:
(body[dir=rtl] .data-grid td .go-to-arrow):
* UserInterface/Views/Main.css:
(body[dir=rtl] .go-to-arrow):
2017-06-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Pausing with a deep call stack can be very slow, avoid eagerly generating object previews
https://bugs.webkit.org/show_bug.cgi?id=173698
Reviewed by Matt Baker.
Introduce RemoteObject.prototype.updatePreview which can be used to update
the preview of a RemoteObject with a current view for the object. Currently
we only use this to fetch the preview that we did not have for the `thisObject`
in the scope chain sidebar. However this could be used generically to update
a RemoteObject's preview (ObjectPreview) at any time.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.canLoadPreview):
(WebInspector.RemoteObject.prototype.updatePreview):
Allow a RemoteObject to update its preview property. Since this only makes
sense on certain Object values include a helper to know when it is appropriate
to fetch a preview.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
(WebInspector.ObjectTreePropertyTreeElement.prototype._loadPreviewLazilyIfNeeded):
If the object being shown in the sidebar does not have a preview but can load a
preview then attempt to load it lazily. This is the case for the `thisObject`
which is injected into an ObjectTree in the scope chain sidebar.
2017-06-22 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add icon for Canvas.svg
https://bugs.webkit.org/show_bug.cgi?id=173580
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/Canvas.svg: Added.
2017-06-21 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add NavigationItemCheckers.svg
https://bugs.webkit.org/show_bug.cgi?id=173692
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/NavigationItemCheckers.svg: Added.
2017-06-20 Devin Rousso <drousso@apple.com>
Web Inspector: change the selected ScopeBarItem on mousedown instead of click
https://bugs.webkit.org/show_bug.cgi?id=173586
Reviewed by Matt Baker.
Both the Tab bar and Sidebar navigation bar switch the active item on "mousedown" instead of
on "click". ScopeBarItem should follow this pattern, as it is faster and keeps consistency.
* UserInterface/Views/MultipleScopeBarItem.js:
(WebInspector.MultipleScopeBarItem):
(WebInspector.MultipleScopeBarItem.prototype._handleMouseDown):
(WebInspector.MultipleScopeBarItem.prototype._clicked): Deleted.
* UserInterface/Views/ScopeBarItem.js:
(WebInspector.ScopeBarItem):
(WebInspector.ScopeBarItem.prototype._handleMouseDown):
(WebInspector.ScopeBarItem.prototype._clicked): Deleted.
2017-06-20 Devin Rousso <drousso@apple.com>
Web Inspector: Send context attributes for tracked canvases
https://bugs.webkit.org/show_bug.cgi?id=173327
Reviewed by Joseph Pecoraro.
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.prototype.get contextAttributes):
* UserInterface/Views/CanvasDetailsSidebarPanel.js:
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.sizeDidChange):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshAttributesSection):
* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode.prototype.createCellContent):
Instead of checking if the value of the cell is falsy, check that the key exists in the data.
This allows values like `false` to be displayed.
2017-06-19 Devin Rousso <drousso@apple.com>
Web Inspector: create canvas content view and details sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=138941
<rdar://problem/19051672>
Reviewed by Joseph Pecoraro.
* UserInterface/Models/Canvas.js:
(WebInspector.Canvas):
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.prototype.get displayName):
(WebInspector.Canvas.requestNode): Added.
(WebInspector.Canvas.prototype.requestContent): Added.
(WebInspector.Canvas.prototype.saveIdentityToCookie):
* UserInterface/Controllers/CanvasManager.js:
(WebInspector.CanvasManager.prototype.canvasAdded):
(WebInspector.CanvasManager.prototype.canvasRemoved):
* UserInterface/Models/Collection.js:
* UserInterface/Models/Frame.js:
(WebInspector.Frame):
(WebInspector.Frame.prototype.get canvasCollection):
(WebInspector.Frame.prototype.commitProvisionalLoad):
Create a Collection for Canvas in each Frame, and modify it when canvas events are fired.
* UserInterface/Views/CanvasContentView.css: Added.
(.content-view.canvas > .preview):
(.content-view.canvas > .preview > img):
* UserInterface/Views/CanvasContentView.js: Added.
(WebInspector.CanvasContentView):
(WebInspector.CanvasContentView.prototype.get navigationItems):
(WebInspector.CanvasContentView.prototype.shown):
(WebInspector.CanvasContentView.prototype.hidden):
(WebInspector.CanvasContentView.prototype._showPreview):
(WebInspector.CanvasContentView.prototype._updateImageGrid):
(WebInspector.CanvasContentView.prototype._showGridButtonClicked):
* UserInterface/Views/CanvasDetailsSidebarPanel.js: Added.
(WebInspector.CanvasDetailsSidebarPanel):
(WebInspector.CanvasDetailsSidebarPanel.prototype.inspect):
(WebInspector.CanvasDetailsSidebarPanel.prototype.get canvas):
(WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshIdentitySection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection.this._canvas.requestNode.):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshSourceSection):
* UserInterface/Views/CanvasTreeElement.js: Added.
(WebInspector.CanvasTreeElement):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._canvasWasAdded):
(WebInspector.FrameTreeElement.prototype._canvasWasRemoved):
(WebInspector.FrameTreeElement):
* UserInterface/Base/Main.js:
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView):
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
Show Canvas objects and tie them to the correct ContentView and TreeElement subclasses.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Images/Canvas.svg: Added.
* UserInterface/Views/ResourceIcons.css:
(.canvas .icon):
Added new files/rules/strings related to Canvas UI.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings .navigation-bar):
* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.prototype._createGeneralSettingsView):
(WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
Add an experimental settings toggle in the Debug view for showing canvas contexts.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
Drive-by fix: ensure that sorting also includes numbers, so that 1 < 2 < 10.
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView.prototype.shown):
(WebInspector.ImageResourceContentView.prototype.hidden):
(WebInspector.ImageResourceContentView.prototype._updateImageGrid):
(WebInspector.ImageResourceContentView.prototype._showGridButtonClicked):
(WebInspector.ImageResourceContentView):
Drive-by fix: change the activated state of the Show Grid navigation item if it changes
in another view.
2017-06-19 Devin Rousso <drousso@apple.com>
Web Inspector: Unify contextmenu items for all node links/previews
https://bugs.webkit.org/show_bug.cgi?id=173187
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForDOMNode.didGetFunctionDetails): Added.
(WebInspector.appendContextMenuItemsForDOMNode.didGetProperty): Added.
(WebInspector.appendContextMenuItemsForDOMNode.didResolveNode): Added.
(WebInspector.appendContextMenuItemsForDOMNode): Added.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
(WebInspector.DOMTreeElement.prototype._showCustomElementDefinition): Deleted.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.revealElement): Deleted.
(WebInspector.DOMTreeOutline.prototype._populateContextMenu.logElement): Deleted.
(WebInspector.DOMTreeOutline.prototype._populateContextMenu): Deleted.
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
Unify common DOM node context menu actions into a single helper function.
* UserInterface/Base/DOMUtilities.js:
(WebInspector.linkifyNodeReference):
(WebInspector.linkifyNodeReferenceElement):
Rework parameters to use options dictionary.
2017-06-16 Matt Baker <mattbaker@apple.com>
Web Inspector: Instrument 2D/WebGL canvas contexts in the backend
https://bugs.webkit.org/show_bug.cgi?id=172623
<rdar://problem/32415986>
Reviewed by Devin Rousso and Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Controllers/CanvasManager.js: Added.
New frontend manager for the Canvas domain.
(WebInspector.CanvasManager):
(WebInspector.CanvasManager.prototype.get canvases):
(WebInspector.CanvasManager.prototype.canvasAdded):
(WebInspector.CanvasManager.prototype.canvasRemoved):
(WebInspector.CanvasManager.prototype._mainResourceDidChange):
* UserInterface/Main.html:
New files.
* UserInterface/Models/Canvas.js: Added.
(WebInspector.Canvas):
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.displayNameForContextType):
Get displayable text "2D" or "WebGL" based on context type.
(WebInspector.Canvas.resetUniqueDisplayNameNumbers):
Called by CanvasManager when canvases are cleared.
(WebInspector.Canvas.prototype.get identifier):
(WebInspector.Canvas.prototype.get contextType):
(WebInspector.Canvas.prototype.get frame):
(WebInspector.Canvas.prototype.get cssCanvasName):
For CSS canvases, the identifier passed to getCSSCanvasContext.
(WebInspector.Canvas.prototype.get displayName):
Get displayable canvas name. The name depends on how the canvas was
created, and the information available:
- getCSSCanvasContext: "CSS Canvas <identifier>"
- getContext: "Canvas #<DOM id attribute value>"
- Otherwise: "Canvas 1", "Canvas 2", ...
(WebInspector.Canvas.saveIdentityToCookie):
* UserInterface/Protocol/CanvasObserver.js: Added.
(WebInspector.CanvasObserver.prototype.canvasAdded):
(WebInspector.CanvasObserver.prototype.canvasRemoved):
(WebInspector.CanvasObserver):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
2017-06-16 Matt Lewis <jlewis3@apple.com>
Unreviewed, rolling out r218376.
The patch cause multiple Layout Test Crashes.
Reverted changeset:
"Web Inspector: Instrument 2D/WebGL canvas contexts in the
backend"
https://bugs.webkit.org/show_bug.cgi?id=172623
http://trac.webkit.org/changeset/218376
2017-06-15 Matt Baker <mattbaker@apple.com>
Web Inspector: Instrument 2D/WebGL canvas contexts in the backend
https://bugs.webkit.org/show_bug.cgi?id=172623
<rdar://problem/32415986>
Reviewed by Devin Rousso.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Controllers/CanvasManager.js: Added.
New frontend manager for the Canvas domain.
(WebInspector.CanvasManager):
(WebInspector.CanvasManager.prototype.get canvases):
(WebInspector.CanvasManager.prototype.canvasAdded):
(WebInspector.CanvasManager.prototype.canvasRemoved):
(WebInspector.CanvasManager.prototype._mainResourceDidChange):
* UserInterface/Main.html:
New files.
* UserInterface/Models/Canvas.js: Added.
(WebInspector.Canvas):
(WebInspector.Canvas.fromPayload):
(WebInspector.Canvas.displayNameForContextType):
Get displayable text "2D" or "WebGL" based on context type.
(WebInspector.Canvas.resetUniqueDisplayNameNumbers):
Called by CanvasManager when canvases are cleared.
(WebInspector.Canvas.prototype.get identifier):
(WebInspector.Canvas.prototype.get contextType):
(WebInspector.Canvas.prototype.get frame):
(WebInspector.Canvas.prototype.get cssCanvasName):
For CSS canvases, the identifier passed to getCSSCanvasContext.
(WebInspector.Canvas.prototype.get displayName):
Get displayable canvas name. The name depends on how the canvas was
created, and the information available:
- getCSSCanvasContext: "CSS Canvas <identifier>"
- getContext: "Canvas #<DOM id attribute value>"
- Otherwise: "Canvas 1", "Canvas 2", ...
(WebInspector.Canvas.saveIdentityToCookie):
* UserInterface/Protocol/CanvasObserver.js: Added.
(WebInspector.CanvasObserver.prototype.canvasAdded):
(WebInspector.CanvasObserver.prototype.canvasRemoved):
(WebInspector.CanvasObserver):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
2017-06-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Search highlight doesn't show up in resources when paused
https://bugs.webkit.org/show_bug.cgi?id=173438
<rdar://problem/32800114>
Reviewed by Matt Baker.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
Previously we were bailing if executionLineNumber was NaN, which means that when
we were paused we were incorrectly disabling highlights in any resource that does
not have the active callframe. Relax this and make it match the intended behavior
of only disabling highlights if the highlight line matches the execution line.
2017-06-15 Joseph Pecoraro <pecoraro@apple.com>
Uncaught Exception: TypeError: null is not an object (evaluating 'this.contentBrowser.contentViewForRepresentedObject')
https://bugs.webkit.org/show_bug.cgi?id=173425
<rdar://problem/32744172>
Reviewed by Devin Rousso.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype.shown):
Reorder slightly so the NavigationSidebar has its ContentBrowser set
before anyone tries to restore views in the sidebar.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.showDefaultContentView):
Try to select a script/resource content view instead of nothing.
(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
When a resource is selected, save it using the normal path.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.canShowDifferentContentView):
Remove a reference to an unused / stale member variable.
2017-06-14 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Pretty print / type info / code coverage buttons disappear after switching tabs
https://bugs.webkit.org/show_bug.cgi?id=162515
<rdar://problem/28455322>
Reviewed by Joseph Pecoraro.
Each ContentView owns a list of NavigationItems. When the ContentView moves across
Tabs (ContentBrowsers) it removes its NavigationItems from the old Tab's NavigationBar
and adds them to the new Tab's NavigationBar. When switching back to the original tab
the ContentView is restored, but its NavigationItems are not carried back.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._updateContentViewNavigationItems):
Add a forceUpdate parameter that is needed when navigationItems are unchanged but navigationBar is
different.
(WebInspector.ContentBrowser.prototype._removeAllNavigationItems):
Remove navigation items even when their navigationBar is no longer a current navigationBar,
e.g. a navigationBar of the previous tab.
(WebInspector.ContentBrowser.prototype._contentViewNavigationItemsDidChange):
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype._takeOwnershipOfContentView):
2017-06-14 Devin Rousso <drousso@apple.com>
Web Inspector: REGRESSION: SVG files and favicon don't display properly
https://bugs.webkit.org/show_bug.cgi?id=173389
<rdar://problem/32774281>
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ImageResourceContentView.css:
(.content-view.resource.image img):
Don't set a `min-width` as it has odd interactions with flexbox.
2017-06-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Console: Message icons overlay source location
https://bugs.webkit.org/show_bug.cgi?id=173291
Reviewed by Matt Baker.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message-location.call-frame):
This should be a safe change since a method name and a source link already have
max-width set to 20vw and 30vw respectively.
2017-06-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Don't use -webkit-user-modify CSS property
https://bugs.webkit.org/show_bug.cgi?id=173232
Reviewed by Devin Rousso.
Replace -webkit-user-modify CSS property with contentEditable HTML attribute.
* UserInterface/Views/Editing.css:
(.editing):
* UserInterface/Views/EditingSupport.js:
(cleanUpAfterEditing):
* UserInterface/Views/VisualStyleSelectorTreeItem.css:
(.item.visual-style-selector-item:not(.dom-element-icon).editable > .titles > .title):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype.ondeselect):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleMainTitleMouseDown):
(WebInspector.VisualStyleSelectorTreeItem.prototype._commitSelector):
2017-06-13 Sam Weinig <sam@webkit.org>
Rename JSDOMWindowShell to JSDOMWindowProxy to match the HTML5 spec.
https://bugs.webkit.org/show_bug.cgi?id=80733
Reviewed by Chris Dumez.
* UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot.prototype._isNodeGlobalObject):
2017-06-12 Devin Rousso <drousso@apple.com>
Web Inspector: Add grid to images to clarify transparency and image size
https://bugs.webkit.org/show_bug.cgi?id=173184
Reviewed by Matt Baker.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
Add setting for controlling the image grid.
* UserInterface/Images/NavigationItemCheckers.svg: Added.
* UserInterface/Views/ImageResourceContentView.css:
(.content-view.resource.image):
(.content-view.resource.image img):
Replace the border spacing around the image with padding on the container. This is required
because a border will extend the area that is effected by `background-image`, meaning that
the checkerboard would appear in that area as well, giving misleading information as to the
size of the image.
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView):
(WebInspector.ImageResourceContentView.prototype.get navigationItems): Added.
(WebInspector.ImageResourceContentView.prototype.contentAvailable):
(WebInspector.ImageResourceContentView.prototype.shown): Added.
(WebInspector.ImageResourceContentView.prototype._toggleImageGrid): Added.
(WebInspector.ImageResourceContentView.prototype._showGridButtonClicked): Added.
(WebInspector.ImageResourceContentView.prototype.get imageElement): Deleted.
Apply the CSS class for showing the grid when the added navigation item is activated.
* UserInterface/Views/Main.css:
(img.show-grid):
Generates a checkerboard pattern via `background-image` using the following process:
- four `linear-gradients` are drawn, one in each corner
- each draws one half of a 20x20 square, specified by `background-size`
- they are then repositioned using `background-position` so that the two halfs align
+------+ \--2
|1 /\ 2| |\ |
| / \ | => | \|
|/ \| => 4--\
|\ /| => 1--/
| \ / | => | /|
|4 \/ 3| |/ |
+------+ /--3
2017-06-10 Dan Bernstein <mitz@apple.com>
Reverted r218056 because it made the IDE reindex constantly.
* Configurations/DebugRelease.xcconfig:
2017-06-10 Dan Bernstein <mitz@apple.com>
[Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
https://bugs.webkit.org/show_bug.cgi?id=173223
Reviewed by Sam Weinig.
The rebuilds were happening due to a difference in the compiler options that the IDE and
xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
specify an appropriate path in CLANG_INDEX_STORE_PATH.
* Configurations/DebugRelease.xcconfig:
2017-06-10 Devin Rousso <drousso@apple.com>
Web Inspector: REGRESSION(r217749): Event listeners are removed even if they haven't been added
https://bugs.webkit.org/show_bug.cgi?id=173185
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
(WebInspector.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
Maintain a member variable flag such that event listeners are only removed if it is true.
It is only set to true once the event listeners are added.
2017-06-09 Devin Rousso <drousso@apple.com>
Web Inspector: REGRESSION(r217258): Misspelled variable names
https://bugs.webkit.org/show_bug.cgi?id=173189
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.tabContentViewClassForRepresentedObject):
* UserInterface/Views/ResourceIcons.css:
(.large :matches(.resource-icon.resource-type-stylesheet, .stylesheet-icon) .icon):
(.large .resource-icon.resource-type-stylesheet .icon): Deleted.
2017-06-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Web inspector does not show non-shadow children of an element with a shadow root (e.g. <video>)
https://bugs.webkit.org/show_bug.cgi?id=173121
<rdar://problem/30948943>
Reviewed by Matt Baker.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode):
Only populate _children when we have both the shadowRoots and
actual children payloads. Backends always send shadowRoots but
only send children when requested. So if we have shadowRoots
but expect actual children, don't populate _children until we
request the child nodes.
2017-06-07 Carlos Garcia Campos <cgarcia@igalia.com>
Remove legacy INSPECTOR_SERVER implementation
https://bugs.webkit.org/show_bug.cgi?id=172966
Reviewed by Žan Doberšek.
Remove InspectorFrontendHostStub and thr web sockets initialization.
* UserInterface/Base/InspectorFrontendHostStub.js: Removed.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Main.html:
* UserInterface/Test.html:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
* WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
2017-06-07 Devin Rousso <drousso@apple.com>
Web Inspector: Add ContextMenu item to log WebSocket object to console
https://bugs.webkit.org/show_bug.cgi?id=172878
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.resolveWebSocket):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.populateContextMenu):
2017-06-07 Devin Rousso <drousso@apple.com>
Web Inspector: Allow user to choose stylesheet when creating new rules
https://bugs.webkit.org/show_bug.cgi?id=172487
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.addRule.inspectorStyleSheetAvailable):
(WebInspector.DOMNodeStyles.prototype.addRule):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CSSStyleDetailsSidebarPanel.prototype._newRuleButtonContextMenu):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonClicked):
(WebInspector.RulesStyleDetailsPanel.prototype.newRuleButtonContextMenu):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection):
(WebInspector.VisualStyleSelectorSection.prototype._addNewRuleContextMenu):
(WebInspector.VisualStyleSelectorSection.prototype._addNewRule): Renamed _addNewRuleClick.
2017-06-06 Joseph Pecoraro <pecoraro@apple.com>
Unreviewed rollout r217807. Caused a test to crash.
* UserInterface/Proxies/HeapSnapshotNodeProxy.js:
(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):
* UserInterface/Views/HeapSnapshotClassDataGridNode.js:
(WebInspector.HeapSnapshotClassDataGridNode.prototype.createCellContent):
* UserInterface/Views/HeapSnapshotClusterContentView.js:
(WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):
* UserInterface/Views/HeapSnapshotDataGridTree.js:
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
* UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot):
(HeapSnapshot.updateCategoriesAndMetadata):
(HeapSnapshot.prototype.serializeNode):
(HeapSnapshot.prototype._gcRootPathes.visitNode):
(HeapSnapshot.prototype._gcRootPathes):
2017-06-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve ES6 Class instances in Heap Snapshot instances view
https://bugs.webkit.org/show_bug.cgi?id=172848
<rdar://problem/25709212>
Reviewed by Saam Barati.
* UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
(HeapSnapshot):
Support the new snapshot version. The only thing that changes are the
node flags, and its actually completely compatible with version 1.
(HeapSnapshot.updateCategoriesAndMetadata):
List the count of object type instances in each class category.
(HeapSnapshot.prototype.serializeNode):
Include whether or not the node is an object type.
* UserInterface/Proxies/HeapSnapshotNodeProxy.js:
(WebInspector.HeapSnapshotNodeProxy):
(WebInspector.HeapSnapshotNodeProxy.deserialize):
Add a new Node isObjectType property based on the new data.
* UserInterface/Views/HeapSnapshotClassDataGridNode.js:
(WebInspector.HeapSnapshotClassDataGridNode.prototype.createCellContent):
* UserInterface/Views/HeapSnapshotClusterContentView.js:
(WebInspector.HeapSnapshotClusterContentView.iconStyleClassNameForClassName):
If a class contains 50% or more object type instances then it as such
instead of defaulting to native.
* UserInterface/Views/HeapSnapshotDataGridTree.js:
(WebInspector.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel):
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
We can be more specific than the default if the individual instance is
known to be an object type.
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: Don't create NavigationSidebarPanel classes until they are needed by a Tab
https://bugs.webkit.org/show_bug.cgi?id=172621
Reviewed by Timothy Hatcher.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
(WebInspector.ContentBrowserTabContentView.prototype.shown):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):
* UserInterface/Views/NetworkTabContentView.js:
(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Use public getter for navigationSidebarPanel.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype.initialLayout): Added.
Load information about the current frame once the sidebar panel is displayed.
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: Use initialLayout for DetailsSidebarPanel classes
https://bugs.webkit.org/show_bug.cgi?id=172381
Reviewed by Timothy Hatcher.
* UserInterface/Views/ApplicationCacheDetailsSidebarPanel.js:
(WebInspector.ApplicationCacheDetailsSidebarPanel):
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.ApplicationCacheDetailsSidebarPanel.prototype.layout):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.layout):
* UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:
(WebInspector.IndexedDatabaseDetailsSidebarPanel):
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.layout):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel):
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.layout):
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel):
(WebInspector.ProbeDetailsSidebarPanel.prototype.initialLayout): Added.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
(WebInspector.ResourceDetailsSidebarPanel.prototype.initialLayout): Added.
(WebInspector.ResourceDetailsSidebarPanel.prototype.layout):
(WebInspector.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners):
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: The CodeMirror instance in the ConsolePrompt does't need to be refreshed each time it is shown
https://bugs.webkit.org/show_bug.cgi?id=172608
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsolePrompt.js:
(WebInspector.ConsolePrompt.prototype.shown): Deleted.
* UserInterface/Views/DatabaseContentView.js:
(WebInspector.DatabaseContentView.prototype.shown): Deleted.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole):
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: Attributes table in Node Details Sidebar should have editable keys and values
https://bugs.webkit.org/show_bug.cgi?id=167076
<rdar://problem/30033629>
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAttributes):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._attributeNodeValueChanged):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._createAttributesDataGrid): Deleted.
Rework creation of the attributes DataGrid so that it is only created once and cleared for
new content. Nodes in the DataGrid are now EditableDataGridNode instances so that attribute
names and values can be changed from within the sidebar. The DataGrid is also sorted based
on attribute name, to make finding attributes easier.
* UserInterface/Views/DataGrid.css:
(.data-grid tr.editable .cell-content > input):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
* UserInterface/Views/DetailsSection.css:
(.details-section > .content .data-grid tr:not(.editable) td.value-column):
(.details-section > .content .data-grid tr:not(.editable) td.value-column > div):
(.details-section > .content .data-grid td.value-column): Deleted.
(.details-section > .content .data-grid td.value-column > div): Deleted.
* UserInterface/Main.html:
* UserInterface/Views/EditableDataGridNode.js: Added.
(WebInspector.EditableDataGridNode):
(WebInspector.EditableDataGridNode.prototype.get element):
(WebInspector.EditableDataGridNode.prototype.createCellContent):
(WebInspector.EditableDataGridNode.prototype._handleKeyPress):
(WebInspector.EditableDataGridNode.prototype._handleBlur):
(WebInspector.EditableDataGridNode.prototype._notifyInputElementValueChanged):
Special type of DataGridNode that wraps the content of each cell in an <input>.
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: Existing query in Search tab doesn't perform search on reload
https://bugs.webkit.org/show_bug.cgi?id=172663
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search.changed > .banner):
(.sidebar > .panel.navigation.search.changed > .banner > a):
(.sidebar > .panel.navigation.search.changed > :matches(.content, .empty-content-placeholder)):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype._mainResourceDidChange):
(WebInspector.SearchSidebarPanel.prototype._contentChanged):
Listen for any "resource added" event, and show the content changed banner when one occurs.
2017-06-02 Devin Rousso <drousso@apple.com>
Web Inspector: Should see active Web Sockets when opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=172312
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.webSocketHandshakeResponseReceived):
(WebInspector.FrameResourceManager.prototype.initialize): Removed.
Rework order of agent enable calls to ensure that the main frame is initialized before any
websocket events are dispatched.
* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.ReadyState):
Change symbol strings in enum for better printing in tests.
2017-06-01 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r217691.
This change broke the Windows build.
Reverted changeset:
"Web Inspector: Should see active Web Sockets when opening Web
Inspector"
https://bugs.webkit.org/show_bug.cgi?id=172312
http://trac.webkit.org/changeset/217691
2017-06-01 Devin Rousso <drousso@apple.com>
Web Inspector: Should see active Web Sockets when opening Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=172312
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.webSocketHandshakeResponseReceived):
(WebInspector.FrameResourceManager.prototype.initialize): Removed.
Rework order of agent enable calls to ensure that the main frame is initialized before any
websocket events are dispatched.
* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.ReadyState):
Change symbol strings in enum for better printing in tests.
2017-06-01 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Web Sockets: Unable to inspect a WebSocket that receives >50 messages per second
https://bugs.webkit.org/show_bug.cgi?id=171904
<rdar://problem/32095863>
Reviewed by Matt Baker.
Every size increase of a resource causes a sidebar item to be re-attached to the DOM. Sending or
receiving a WebSocket message causes a size increase. When size increase happens too frequently,
the go-to arrow starts to flicker and becomes unclickable. This patch makes sure a sidebar item gets
re-attached only when its position (index) changes.
* UserInterface/Views/NetworkSidebarPanel.js:
Add the go-to arrow and close buttons when treeElement.status is a spinner element.
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
Setting status to "" removes the go-to arrow and close buttons in the Network tab.
Only set status to "" to remove the spinner.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.reattachIfIndexChanged): Added.
2017-05-31 Devin Rousso <drousso@apple.com>
Web Inspector: Add Debug view to Settings tab for debug settings and experimental features
https://bugs.webkit.org/show_bug.cgi?id=172477
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Setting.js:
Add three new settings:
- autoLogProtocolMessages
- autoLogTimeStats
- enableUncaughtExceptionReporter
* UserInterface/Debug/Bootstrap.js:
(WebInspector.runBootstrapOperations):
Update toolbar item state when editor in Settings tab is changed.
* UserInterface/Debug/UncaughtExceptionReporter.js:
(handleUncaughtExceptionRecord):
Return if the setting controlling the uncaught exception reporter is disabled.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.set dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
(InspectorBackendClass.prototype.set dumpInspectorTimeStats):
(InspectorBackendClass.prototype.get dumpInspectorTimeStats):
Replace member variables and private Setting objects with items on WebInspector.settings.
* UserInterface/Main.html:
* UserInterface/Views/GeneralSettingsView.js: Removed.
Consolidated into SettingsTabContentView.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.prototype._createGeneralSettingsView):
(WebInspector.SettingsTabContentView.prototype._createDebugSettingsView):
(WebInspector.SettingsTabContentView.prototype._updateDebugSettingsViewVisibility):
* UserInterface/Views/SettingsView.js:
(WebInspector.SettingsView.prototype.addGroupWithCustomSetting):
2017-05-31 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: BackForwardArrows.svg is not shown
https://bugs.webkit.org/show_bug.cgi?id=172741
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/BackForwardArrows.svg: Renamed id names to match with Apple's images.
2017-05-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: images dragged from Inspector to Desktop are named "Unknown.png"
https://bugs.webkit.org/show_bug.cgi?id=141515
<rdar://problem/9251308>
Reviewed by Wenson Hsieh.
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView.prototype.contentAvailable):
Set a non-standard "filename" attribute to provide a suggested filename
for this <img> containing data: or blob: content.
2017-05-30 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add DOM breakpoint image for GTK+
https://bugs.webkit.org/show_bug.cgi?id=169326
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/DOMBreakpoint.svg: Added.
2017-05-28 Dan Bernstein <mitz@apple.com>
[Xcode] ALWAYS_SEARCH_USER_PATHS is set to YES
https://bugs.webkit.org/show_bug.cgi?id=172691
Reviewed by Tim Horton.
* Configurations/Base.xcconfig: Set ALWAYS_SEARCH_USER_PATHS to NO.
2017-05-26 Devin Rousso <drousso@apple.com>
Web Inspector: Reloading the page after switching from the Resource tab switches back
https://bugs.webkit.org/show_bug.cgi?id=172622
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
Don't show the newly selected tree element's represented object if the sidebar is not visible.
2017-05-26 Devin Rousso <drousso@apple.com>
Web Inspector: New Tab contents have extra vertical spacing when wrapped
https://bugs.webkit.org/show_bug.cgi?id=172530
Reviewed by Joseph Pecoraro.
* UserInterface/Views/NewTabContentView.css:
(.new-tab.tab.content-view):
2017-05-26 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for Web Sockets
https://bugs.webkit.org/show_bug.cgi?id=172296
Reviewed by Carlos Garcia Campos.
Add more free icons for the Web Inspector of GTK+ port.
* UserInterface/Images/gtk/WebSocket.png: Added.
* UserInterface/Images/gtk/WebSocket@2x.png: Added.
* UserInterface/Images/gtk/WebSocketLarge.png: Added.
* UserInterface/Images/gtk/WebSocketLarge@2x.png: Added.
* UserInterface/Views/ResourceIcons.css:
(.resource-icon.resource-type-websocket .icon):
(.large .resource-icon.resource-type-websocket .icon):
(body:matches(.mac-platform, .windows-platform) .resource-icon.resource-type-websocket .icon): Deleted.
(body:matches(.mac-platform, .windows-platform) .large .resource-icon.resource-type-websocket .icon): Deleted.
2017-05-25 Devin Rousso <drousso@apple.com>
Web Inspector: Don't create DetailsSidebarPanel classes until they are needed by a Tab
https://bugs.webkit.org/show_bug.cgi?id=172393
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Remove global instantiation of all DetailsSidebarPanel objects.
(WebInspector.instanceForClass):
Utility function for creating and accessing an instance of a given class.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView):
(WebInspector.DebuggerTabContentView.prototype.showDetailsSidebarPanels):
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView):
* UserInterface/Views/NetworkTabContentView.js:
(WebInspector.NetworkTabContentView):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView):
* UserInterface/Views/StorageTabContentView.js:
(WebInspector.StorageTabContentView):
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get detailsSidebarPanels):
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):
Now accepts an array of DetailsSidebarPanel classes that are all instantiated when they are
about to be added to the DetailsSidebar.
2017-05-25 Devin Rousso <drousso@apple.com>
Web Inspector: Changing the width of a Sidebar when it's collapsed shouldn't trigger a layout
https://bugs.webkit.org/show_bug.cgi?id=172606
Reviewed by Matt Baker.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype._recalculateWidth):
2017-05-25 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add ListStylePositionInside.svg and ListStylePositionOutside.svg
https://bugs.webkit.org/show_bug.cgi?id=172574
Reviewed by Michael Catanzaro.
Add more free icons for the Web Inspector of GTK+ port.
* UserInterface/Images/gtk/ListStylePositionInside.svg: Added.
* UserInterface/Images/gtk/ListStylePositionOutside.svg: Added.
2017-05-25 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new icons AnimationPlayStatePaused.svg and AnimationPlayStateRunning.svg
https://bugs.webkit.org/show_bug.cgi?id=172579
Reviewed by Michael Catanzaro.
Add more free icons for the Web Inspector of GTK+ port.
* UserInterface/Images/gtk/AnimationPlayStatePaused.svg: Added.
* UserInterface/Images/gtk/AnimationPlayStateRunning.svg: Added.
2017-05-24 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for garbage collect and clean buttons in Console
https://bugs.webkit.org/show_bug.cgi?id=167356
Reviewed by Michael Catanzaro.
* UserInterface/Images/gtk/NavigationItemClear.svg: Aligned for 16x16 dimension.
* UserInterface/Images/gtk/NavigationItemGarbageCollect.svg: Added.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView): Removed the Clear image dimension's conditional expression.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView): Ditto.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView): Ditto.
2017-05-24 Devin Rousso <drousso@apple.com>
Web Inspector: Don't load the active recording until a Timeline view needs to be shown
https://bugs.webkit.org/show_bug.cgi?id=172467
Reviewed by Joseph Pecoraro.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView):
(WebInspector.TimelineTabContentView.prototype.restoreFromCookie):
(WebInspector.TimelineTabContentView.prototype._showTimelineViewForType):
Move the call to `_recordingLoaded` to when a timeline view needs to be shown and only if
`_displayedRecording` isn't already set. This delays the creation of the content view for
the recording to right before it needs to be displayed.
2017-05-23 Matt Baker <mattbaker@apple.com>
Web Inspector: content views are not restored on reload if its tree element is filtered out
https://bugs.webkit.org/show_bug.cgi?id=165744
<rdar://problem/27461323>
Reviewed by Devin Rousso.
By default, NavigationSidebar should get the selected represented object
from its content browser, instead of relying on the tree selection. This
allows a filtered tree selection to persist across page loads.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.get currentRepresentedObject):
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
Get the represented object from the content browser instead of relying
on the tree selection (which can be filtered out).
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
(WebInspector.NavigationSidebarPanel.prototype._treeElementWasFiltered):
Reselect the represented object's tree element when it is shown due
to a change in the filter state.
(WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement): Deleted.
Not used.
(WebInspector.NavigationSidebarPanel.prototype.representedObjectWasFiltered): Deleted.
Not used. Replaced by _treeElementWasFiltered.
2017-05-23 Matt Baker <mattbaker@apple.com>
Web Inspector: Cannot delete a disabled XHR breakpoint
https://bugs.webkit.org/show_bug.cgi?id=171971
<rdar://problem/32129527>
Reviewed by Devin Rousso.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
Dispatch XHRBreakpointRemoved event before removing the breakpoint from
the backend. A disabled breakpoint will have already been removed, and
an enabled breakpoint that fails to get removed from the backend should
be removed from the frontend, to prevent it being resolved in the future.
Drive-by fix: remove spurious dispatch of DOMBreakpointRemoved event.
(WebInspector.DOMDebuggerManager.prototype._detachXHRBreakpoint): Deleted.
Merged with removeXHRBreakpoint to simplify implementation.
2017-05-23 Devin Rousso <drousso@apple.com>
Web Inspector: use initialLayout for NetworkSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=172470
Reviewed by Joseph Pecoraro.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype.showDefaultContentView):
(WebInspector.NetworkSidebarPanel.prototype.initialLayout):
Don't create NetworkGridContentView until right before it is shown.
2017-05-23 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add a new icon DockLeft.svg
https://bugs.webkit.org/show_bug.cgi?id=172492
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/DockLeft.svg: Added.
2017-05-23 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add a new icon CSSVariable.svg
https://bugs.webkit.org/show_bug.cgi?id=172491
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/CSSVariable.svg: Added.
2017-05-22 Devin Rousso <drousso@apple.com>
Web Inspector: Changes are not applied in CSS sidebar when switching to Resources tab without blurring editor
https://bugs.webkit.org/show_bug.cgi?id=172388
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refreshEditor):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionEditorFocused):
(WebInspector.RulesStyleDetailsPanel.prototype.shown):
When showing the StyleDetailsPanel, if there is an active editor, which is now saved each
time one becomes focused, force an update of that editor's content.
2017-05-22 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: New Tab contents not centered vertically
https://bugs.webkit.org/show_bug.cgi?id=172486
Reviewed by Devin Rousso.
* UserInterface/Views/NewTabContentView.css:
(.new-tab.tab.content-view):
Use align-items instead of align-content.
2017-05-22 Devin Rousso <drousso@apple.com>
Web Inspector: New CSS Rules should go into a new Stylesheet Resource that can be viewed/edited/saved
https://bugs.webkit.org/show_bug.cgi?id=138810
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager):
(WebInspector.CSSStyleManager.prototype.preferredInspectorStyleSheetForFrame):
(WebInspector.CSSStyleManager.prototype._updateResourceContent.fetchedStyleSheetContent):
Manually dispatch a change event for modifications to CSSStyleSheet objects since they are
not covered by the listener for Resource changes.
* UserInterface/Main.html:
Include WebInspector.CSSStyleSheetTreeElement.
* UserInterface/Models/Collection.js:
(WebInspector.Collection.TypeVerifier):
* UserInterface/Models/ResourceCollection.js:
(WebInspector.ResourceCollection.TypeVerifier.Stylesheet):
Add TypeVerifier for CSSStyleSheet.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype._parseRulePayload):
Manually create a SourceCodeLocation object for Inspector Style Sheets.
* UserInterface/Views/CSSStyleSheetTreeElement.js: Added.
(WebInspector.CSSStyleSheetTreeElement):
* UserInterface/Views/ResourceIcons.css:
(:matches(.resource-icon.resource-type-stylesheet, .stylessheet-icon) .icon):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.forwardingConstructor):
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onattach):
(WebInspector.FrameTreeElement.prototype.ondetach):
(WebInspector.FrameTreeElement.prototype.onpopulate):
(WebInspector.FrameTreeElement.prototype._styleSheetAdded):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._styleSheetAdded):
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
Listen for the creation of CSSStyleSheet objects and add them to the sidebar if they are an
Inspector Style Sheet. Regular style sheets are added via their respective resources.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Prevent CSSStyleSheetTreeElement instances from attempting to save state to a cookie.
* UserInterface/Base/Main.js:
(WebInspector.tabContentViewClassForRepresentedObject):
(WebInspector.createSourceCodeLocationLink):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._prepareEditorForInitialContent):
(WebInspector.SourceCodeTextEditor.prototype._looselyMatchesSourceCodeLocation):
(WebInspector.SourceCodeTextEditor.prototype._matchesSourceCodeLocation):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView):
(WebInspector.TextResourceContentView.prototype.get supportsSave):
(WebInspector.TextResourceContentView.prototype.get saveData):
(WebInspector.TextResourceContentView.prototype._contentWillPopulate):
(WebInspector.TextResourceContentView.prototype._shouldBeEditable):
Support editing and saving an Inspector Style Sheet via its CSSStyleSheet object.
2017-05-22 Brian Burg <bburg@apple.com>
Web Inspector: webkit reload policy should match default behavior
https://bugs.webkit.org/show_bug.cgi?id=171385
<rdar://problem/31871515>
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
Use PageAgent.reload.invoke to make the reload options more explicit.
* UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness.prototype.reloadPage):
Convert this method to take an options dictionary rather than positional
boolean arguments. Update call sites to pass correct options.
When running tests, we want to revalidate unexpired resources, as there
does not seem to be another reliable way to trigger revalidated cached
resources from a Web Inspector layout test. Make this behavior the default.
2017-05-22 Simon Fraser <simon.fraser@apple.com>
Support transform-box to switch sizing box in SVG
https://bugs.webkit.org/show_bug.cgi?id=145783
Reviewed by Dean Jackson.
Add transform-box to the list of autocompletions.
* UserInterface/External/CodeMirror/css.js:
2017-05-22 Brian Burg <bburg@apple.com>
Web Inspector: RTL: In Timelines > JavaScript & Events, digits for sample count are not localized
https://bugs.webkit.org/show_bug.cgi?id=171819
Reviewed by Matt Baker.
* UserInterface/Views/ScriptTimelineDataGridNode.js:
(WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
2017-05-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: RTL: Text in autocomplete popover should be aligned left
https://bugs.webkit.org/show_bug.cgi?id=171998
Reviewed by Brian Burg.
Autocomplete popover is only used for CSS and JavaScript, and
these should always be shown as LTR text.
* UserInterface/Views/CompletionSuggestionsView.css:
(.completion-suggestions):
2017-05-22 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add active call frame indicator image
https://bugs.webkit.org/show_bug.cgi?id=161987
<rdar://problem/28307419>
Reviewed by Carlos Garcia Campos.
Add a free icon for the Web Inspector of GTK port.
* UserInterface/Images/gtk/ActiveCallFrame.svg: Added.
2017-05-19 Devin Rousso <drousso@apple.com>
Web Inspector: Use initialLayout for Settings tab
https://bugs.webkit.org/show_bug.cgi?id=172304
Reviewed by Matt Baker.
* UserInterface/Views/GeneralSettingsView.js:
(WebInspector.GeneralSettingsView.prototype.initialLayout):
Move listener for zoom factor to only update that editor.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.initialLayout): Added.
It is not necessary to create the UI for editing settings until the Settings tab is shown.
Use initialLayout to ensure UI gets created exactly once, after the tab is selected.
2017-05-18 Devin Rousso <drousso@apple.com>
REGRESSION (r?): Web Inspector: Shift-click on color square in Styles sidebar should not select text
https://bugs.webkit.org/show_bug.cgi?id=171902
Reviewed by Matt Baker.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Do not attempt to select text if the element being clicked is a bookmark (such as a swatch).
2017-05-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Web Socket Document Icon
https://bugs.webkit.org/show_bug.cgi?id=170023
Reviewed by Matt Baker.
Icons made by Jon Davis.
* UserInterface/Images/WebSocket.png: Added.
* UserInterface/Images/WebSocket@2x.png: Added.
* UserInterface/Images/WebSocketLarge.png: Added.
* UserInterface/Images/WebSocketLarge@2x.png: Added.
New icons for Web Socket resources.
* UserInterface/Views/ResourceIcons.css:
(body:matches(.mac-platform, .windows-platform) .resource-icon.resource-type-websocket .icon):
(body:matches(.mac-platform, .windows-platform) .large .resource-icon.resource-type-websocket .icon):
Use the icon.
2017-05-18 Fujii Hironori <Hironori.Fujii@sony.com>
Web Inspector: [GTK] Adopt currentColor for mask SVG images
https://bugs.webkit.org/show_bug.cgi?id=150603
Reviewed by Carlos Garcia Campos.
* UserInterface/Images/gtk/Circle.svg:
* UserInterface/Images/gtk/ClearBoth.svg:
* UserInterface/Images/gtk/ClearLeft.svg:
* UserInterface/Images/gtk/ClearRight.svg:
* UserInterface/Images/gtk/Close.svg:
* UserInterface/Images/gtk/CloseLarge.svg:
* UserInterface/Images/gtk/Console.svg:
* UserInterface/Images/gtk/Debugger.svg:
* UserInterface/Images/gtk/DockBottom.svg:
* UserInterface/Images/gtk/DockRight.svg:
* UserInterface/Images/gtk/DownloadArrow.svg:
* UserInterface/Images/gtk/Elements.svg:
* UserInterface/Images/gtk/Errors.svg:
* UserInterface/Images/gtk/Eye.svg:
* UserInterface/Images/gtk/FloatLeft.svg:
* UserInterface/Images/gtk/FloatRight.svg:
* UserInterface/Images/gtk/FontStyleItalic.svg:
* UserInterface/Images/gtk/FontStyleNormal.svg:
* UserInterface/Images/gtk/Gear.svg:
* UserInterface/Images/gtk/Issues.svg:
* UserInterface/Images/gtk/Logs.svg:
* UserInterface/Images/gtk/Minus.svg:
* UserInterface/Images/gtk/NavigationItemClear.svg:
* UserInterface/Images/gtk/NavigationItemTrash.svg:
* UserInterface/Images/gtk/Network.svg:
* UserInterface/Images/gtk/NewTab.svg:
* UserInterface/Images/gtk/NewTabPlus.svg:
* UserInterface/Images/gtk/Pause.svg:
* UserInterface/Images/gtk/Pencil.svg:
* UserInterface/Images/gtk/Plus13.svg:
* UserInterface/Images/gtk/Plus15.svg:
* UserInterface/Images/gtk/ReloadFull.svg:
* UserInterface/Images/gtk/ReloadToolbar.svg:
* UserInterface/Images/gtk/Resources.svg:
* UserInterface/Images/gtk/Search.svg:
* UserInterface/Images/gtk/SearchResults.svg:
* UserInterface/Images/gtk/SplitToggleUp.svg:
* UserInterface/Images/gtk/StepInto.svg:
* UserInterface/Images/gtk/StepOut.svg:
* UserInterface/Images/gtk/StepOver.svg:
* UserInterface/Images/gtk/Stop.svg:
* UserInterface/Images/gtk/Storage.svg:
* UserInterface/Images/gtk/TextAlignCenter.svg:
* UserInterface/Images/gtk/TextAlignJustify.svg:
* UserInterface/Images/gtk/TextAlignLeft.svg:
* UserInterface/Images/gtk/TextAlignRight.svg:
* UserInterface/Images/gtk/TextDecorationLineThrough.svg:
* UserInterface/Images/gtk/TextDecorationOverline.svg:
* UserInterface/Images/gtk/TextDecorationUnderline.svg:
* UserInterface/Images/gtk/TextTransformCapitalize.svg:
* UserInterface/Images/gtk/TextTransformLowercase.svg:
* UserInterface/Images/gtk/TextTransformUppercase.svg:
* UserInterface/Images/gtk/Time.svg:
* UserInterface/Images/gtk/Timeline.svg:
* UserInterface/Images/gtk/Undock.svg:
* UserInterface/Images/gtk/VisualStyleNone.svg:
* UserInterface/Images/gtk/VisualStylePropertyLinked.svg:
* UserInterface/Images/gtk/VisualStylePropertyUnlinked.svg:
* UserInterface/Images/gtk/Weight.svg:
2017-05-15 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for Search icon of Quick Open dialog
https://bugs.webkit.org/show_bug.cgi?id=172110
Reviewed by Michael Catanzaro.
Add a free icon for the Web Inspector in GTK+.
* UserInterface/Images/gtk/Search.svg: Added.
2017-05-15 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for Worker Scripts / Web Sockets
https://bugs.webkit.org/show_bug.cgi?id=164138
Reviewed by Michael Catanzaro.
Add more free icons for the Web Inspector in GTK+.
* UserInterface/Images/gtk/WorkerScript.png: Added.
* UserInterface/Images/gtk/WorkerScript@2x.png: Added.
* UserInterface/Images/gtk/WorkerScriptLarge.png: Added.
* UserInterface/Images/gtk/WorkerScriptLarge@2x.png: Added.
* UserInterface/Views/ResourceIcons.css:
(.script.worker-icon .icon):
(.large .script.worker-icon .icon):
(body:matches(.mac-platform, .windows-platform) .script.worker-icon .icon): Deleted.
(body:matches(.mac-platform, .windows-platform) .large .script.worker-icon .icon): Deleted.
2017-05-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: RTL: "Elements > Styles - Rules" rule and media query headers should be left aligned
https://bugs.webkit.org/show_bug.cgi?id=171954
<rdar://problem/31961976>
Reviewed by Matt Baker.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header):
(.style-declaration-section.locked > .header > .locked-icon):
(.style-declaration-section > .header > .icon):
(.style-declaration-section > .header > textarea):
(.style-declaration-section.invalid-selector > .header > .icon):
(body[dir=ltr] .style-declaration-section > .header): Deleted.
(body[dir=rtl] .style-declaration-section > .header): Deleted.
(body[dir=ltr] .style-declaration-section.locked > .header > .locked-icon): Deleted.
(body[dir=rtl] .style-declaration-section.locked > .header > .locked-icon): Deleted.
(body[dir=ltr] .style-declaration-section > .header > .icon): Deleted.
(body[dir=rtl] .style-declaration-section > .header > .icon): Deleted.
(body[dir=ltr] .style-declaration-section > .header > textarea): Deleted.
(body[dir=rtl] .style-declaration-section > .header > textarea): Deleted.
Remove RTL rules.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
Set dir="ltr" so selector's textareas work correctly.
* UserInterface/Views/RulesStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .rules):
2017-05-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Error trying to delete DOM breakpoints from the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=171970
<rdar://problem/32129262>
Reviewed by Brian Burg.
In the Debugger sidebar, DOM breakpoints can be cleared from a DOM node
in two ways: by using the DOM node tree element's context menu, or by
pressing the delete key while the element is selected. Each method used
a different code path, and the latter had an error which caused it to fail.
Add a `removeDOMBreakpointsForNode` method to DOMDebuggerManager to make
the operation convenient, and call it from both event handlers.
* UserInterface/Controllers/DOMBreakpointTreeController.js:
(WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
Use convenience method.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpointsForNode):
Helper function for removing all of a node's breakpoints.
* UserInterface/Views/DOMNodeTreeElement.js:
(WebInspector.DOMNodeTreeElement.prototype.ondelete):
Use convenience method.
2017-05-11 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for resources in large sizes (32px @ 1x/2x)
https://bugs.webkit.org/show_bug.cgi?id=155802
<rdar://problem/25320686>
Reviewed by Carlos Garcia Campos.
Add more free icons for the Web Inspector in GTK+.
* UserInterface/Images/gtk/ClippingCSSLarge.png: Added.
* UserInterface/Images/gtk/ClippingCSSLarge@2x.png: Added.
* UserInterface/Images/gtk/ClippingGenericLarge.png: Added.
* UserInterface/Images/gtk/ClippingGenericLarge@2x.png: Added.
* UserInterface/Images/gtk/ClippingJSLarge.png: Added.
* UserInterface/Images/gtk/ClippingJSLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentCSSLarge.png: Added.
* UserInterface/Images/gtk/DocumentCSSLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentFontLarge.png: Added.
* UserInterface/Images/gtk/DocumentFontLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentGenericLarge.png: Added.
* UserInterface/Images/gtk/DocumentGenericLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentImageLarge.png: Added.
* UserInterface/Images/gtk/DocumentImageLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentJSLarge.png: Added.
* UserInterface/Images/gtk/DocumentJSLarge@2x.png: Added.
* UserInterface/Images/gtk/DocumentMarkupLarge.png: Added.
* UserInterface/Images/gtk/DocumentMarkupLarge@2x.png: Added.
2017-05-10 Brian Burg <bburg@apple.com>
Web Inspector: RTL: in Timelines > JavaScript & Events, digits for timer and animation frame number are not localized
https://bugs.webkit.org/show_bug.cgi?id=171818
Reviewed by Joseph Pecoraro.
These numbers need to be formatted with %d, not %s.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName):
2017-05-10 Brian Burg <bburg@apple.com>
Web Inspector: remove dead code for switching Toolbar display options
https://bugs.webkit.org/show_bug.cgi?id=170738
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
* UserInterface/Views/ButtonToolbarItem.css:
(.toolbar .item.button > .glyph):
(.toolbar .item.button > .label):
(.toolbar.icon-and-label-vertical .item.button): Deleted.
(.toolbar.icon-and-label-horizontal .item.button): Deleted.
(.toolbar.small-size .item.button > .glyph): Deleted.
(.toolbar.label-only .item.button > .glyph): Deleted.
(.toolbar.label-only .item.activate.button.activated > .label): Deleted.
(.toolbar.icon-and-label-horizontal .item.button > .label): Deleted.
(.toolbar.icon-only .item.button > .label): Deleted.
* UserInterface/Views/ControlToolbarItem.css:
(.toolbar .item.control):
(.toolbar:matches(.icon-and-label-horizontal, .icon-only) .item.control): Deleted.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard-container):
(.toolbar.icon-and-label-vertical:matches(.small-size, .normal-size) .dashboard-container): Deleted.
(.toolbar.label-only .dashboard-container,): Deleted.
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard-container): Deleted.
(.toolbar.label-only .dashboard-container .advance-arrow): Deleted.
(body[dir=ltr] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.
(body[dir=rtl] .toolbar.label-only .dashboard-container .advance-arrow): Deleted.
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item):
(.toolbar.label-only .dashboard.default > .item,): Deleted.
(.toolbar.normal-size:matches(.icon-only, .icon-and-label-vertical, .icon-and-label-horizontal) .dashboard.default > .item): Deleted.
* UserInterface/Views/ReplayDashboardView.css:
(.toolbar .dashboard.replay .item.button > .glyph):
(.toolbar.label-only .dashboard.replay .item.button > .glyph): Deleted.
* UserInterface/Views/Toolbar.css:
(.toolbar .control-section):
(.toolbar:matches(.icon-and-label-horizontal.small-size, .icon-only.small-size, .label-only) .control-section): Deleted.
* UserInterface/Views/Toolbar.js:
(WebInspector.Toolbar):
(WebInspector.Toolbar.prototype.layout):
(WebInspector.Toolbar.prototype.get displayMode): Deleted.
(WebInspector.Toolbar.prototype.set displayMode): Deleted.
(WebInspector.Toolbar.prototype.get sizeMode): Deleted.
(WebInspector.Toolbar.prototype.set sizeMode): Deleted.
(WebInspector.Toolbar.prototype._handleContextMenuEvent): Deleted.
(WebInspector.Toolbar.prototype._changeDisplayMode): Deleted.
(WebInspector.Toolbar.prototype._toggleSmallIcons): Deleted.
2017-05-10 Ross Kirsling <ross.kirsling@sony.com>
Web Inspector: Copy to clipboard fails via InspectorFrontendHostStub
https://bugs.webkit.org/show_bug.cgi?id=171907
Reviewed by Joseph Pecoraro.
* UserInterface/Base/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.copyText):
Actually make a text selection before attempting to copy to clipboard.
2017-05-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Provide resource load error reason text in details sidebar
https://bugs.webkit.org/show_bug.cgi?id=171901
<rdar://problem/29850995>
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get failureReasonText):
(WebInspector.Resource.prototype.markAsFailed):
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.loadingFailed):
Include the error text we got from the backend. In most cases this should
be a localized error description.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype.set resource):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshErrorReason):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
Include an Error field alongside the status code section when there was an error.
2017-05-09 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK][Win] Web Inspector: Cann't open "Quick Open" dialog by pressing Ctrl+Shift+O
https://bugs.webkit.org/show_bug.cgi?id=171798
Reviewed by Michael Catanzaro.
PC can't input the shortcut keys Command+Shift+O and Command+P.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded): Use CommandOrControl instead of Command.
2017-05-09 Brian Burg <bburg@apple.com>
Web Inspector: Assertion failed: Cannot select item with unexpected parent bar. (at NavigationBar.js:132)
https://bugs.webkit.org/show_bug.cgi?id=171885
Reviewed by Matt Baker.
This new assertion revealed a real misuse of the NavigationBar API.
* UserInterface/Views/NavigationBar.js:
(WebInspector.NavigationBar.prototype.set selectedNavigationItem):
Improve this to be an assertion so it can be paused at using the debugger.
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView.prototype._changeViewMode):
We need to set a NavigationItem as the selected item, not its identifier.
Look up the corresponding item for the identifier that we received (the view mode).
2017-05-08 Brian Burg <bburg@apple.com>
Web Inspector: RTL: box model labels have bad alignment
https://bugs.webkit.org/show_bug.cgi?id=171817
Reviewed by Joseph Pecoraro.
* UserInterface/Views/BoxModelDetailsSectionRow.css:
(.details-section .row.box-model .label):
(body[dir=ltr] .details-section .row.box-model .label):
(body[dir=rtl] .details-section .row.box-model .label):
We can't just use a mirrored leading margin because all the
text here is center-aligned. Just hardcode a reasonable value.
2017-05-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Request/Response toggles not working
https://bugs.webkit.org/show_bug.cgi?id=171833
<rdar://problem/31341637>
Reviewed by Brian Burg.
* UserInterface/Views/HierarchicalPathNavigationItem.js:
(WebInspector.HierarchicalPathNavigationItem.set components.let.componentsEqual):
(WebInspector.HierarchicalPathNavigationItem.prototype.set components):
If the new components being set were shallowly equal, then they wouldn't
actually be updated even if ultimately they are different. In this case
the Path Components with values "request" / "response" would not update
between different resources because the path components had equivalent
simple values. Provide a different discriminator (comparisonData) which
can be an object so these path components compare as necessarily different.
* UserInterface/Views/HeapSnapshotClusterContentView.js:
(WebInspector.HeapSnapshotClusterContentView.createPathComponent):
(WebInspector.HeapSnapshotClusterContentView):
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.createPathComponent):
(WebInspector.ResourceClusterContentView):
(WebInspector.ResourceClusterContentView.prototype._resourceTypeDidChange):
* UserInterface/Views/SVGImageResourceClusterContentView.js:
(WebInspector.SVGImageResourceClusterContentView):
* UserInterface/Views/ScriptClusterTimelineView.js:
(WebInspector.ScriptClusterTimelineView.createPathComponent):
(WebInspector.ScriptClusterTimelineView):
Provide comparisonData for path components cases that would need it.
2017-05-08 Chris Dumez <cdumez@apple.com>
Drop non-standard Element.scrollByLines() / scrollByPages()
https://bugs.webkit.org/show_bug.cgi?id=171820
Reviewed by Simon Fraser.
Drop non-standard Element.scrollByLines() / scrollByPages() from
WebInspector code.
* UserInterface/Models/NativeFunctionParameters.js:
2017-05-08 Matt Baker <mattbaker@apple.com>
Web Inspector: Make it easy to dynamically show/hide a SettingsView
https://bugs.webkit.org/show_bug.cgi?id=171765
<rdar://problem/32031280>
Reviewed by Brian Burg.
This patch adds SettingsTabContentView.prototype.setSettingsViewVisible,
for dynamically showing/hiding a child view (and its NavigationBar item).
The following new behavior is relevant when more that one child SettingsView
exist in the Settings tab:
- Hiding the selected view will cause a new view to become selected.
The previous visible view is selected, if it exists. Otherwise the
next visible view is used.
- Showing a view when no views are selected cause the view to be selected.
As the Settings tab currently has only one child view, the behavior above
was tested by adding a handful of vanilla SettingsView objects to the tab
and toggling their visibility.
* UserInterface/Views/NavigationBar.js:
Simplify overloaded parameter `navigationItemOrIdentifierOrIndex`, which
is used in a few places and is always an instance of NavigationItem.
(WebInspector.NavigationBar):
(WebInspector.NavigationBar.prototype.removeNavigationItem):
(WebInspector.NavigationBar.prototype.get selectedNavigationItem):
(WebInspector.NavigationBar.prototype.set selectedNavigationItem):
(WebInspector.NavigationBar.prototype.findNavigationItem):
Lookup a navigation item by its identifier.
(WebInspector.NavigationBar.prototype._findNavigationItem): Deleted.
Replaced overloaded private method with new public method.
* UserInterface/Views/NavigationItem.js:
Cleanup.
(WebInspector.NavigationItem):
(WebInspector.NavigationItem.prototype.get identifier):
(WebInspector.NavigationItem.prototype.get element):
(WebInspector.NavigationItem.prototype.get minimumWidth):
(WebInspector.NavigationItem.prototype.get parentNavigationBar):
* UserInterface/Views/SettingsTabContentView.css:
Use `visibility: hidden` instead of `display: none` when hiding the
NavigationBar, so that the selected view's top position stays the same.
(.content-view.settings):
(.content-view.settings .navigation-bar.invisible):
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
Switch to an array of SettingsViews instead of a map. Fast lookup isn't
a concern due to the small number of items, and having indices simplifies
traversing the previous/next items in `setSettingsViewVisible`.
(WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
Rename `page` to `settingsView`.
(WebInspector.SettingsTabContentView.prototype.addSettingsView):
(WebInspector.SettingsTabContentView.prototype.setSettingsViewVisible):
Shows/hides the specified view. Hiding the selected SettingsView will
cause another visible view to become selected, if one exists.
(WebInspector.SettingsTabContentView.prototype._updateNavigationBarVisibility):
Helper for updating navigation bar visibility after making a change
to the navigation items.
(WebInspector.SettingsTabContentView.prototype._navigationItemSelected):
2017-05-08 Myles C. Maxfield <mmaxfield@apple.com>
Unprefix unicode-bidi CSS values
https://bugs.webkit.org/show_bug.cgi?id=171761
Reviewed by Simon Fraser.
* UserInterface/Models/CSSKeywordCompletions.js:
2017-05-08 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icon for timeline recording stopwatch
https://bugs.webkit.org/show_bug.cgi?id=154088
Reviewed by Carlos Garcia Campos.
Add a free icon and remove some unused ones for the Web Inspector
in GTK+.
* UserInterface/Images/gtk/Stopwatch.png: Removed.
* UserInterface/Images/gtk/Stopwatch.svg: Added.
* UserInterface/Images/gtk/Stopwatch@2x.png: Removed.
* UserInterface/Views/TimelineIcons.css:
(body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Deleted.
2017-05-05 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r212998): Web Inspector: bad spacing of go-to arrow for HTTP POST request data
https://bugs.webkit.org/show_bug.cgi?id=171674
Reviewed by Matt Baker.
* UserInterface/Views/DetailsSection.css:
(body[dir=ltr] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
Swap margin-left and margin-right. This regressed when RTL support was added.
2017-05-03 Devin Rousso <webkit@devinrousso.com>
REGRESSION (r215630): Web Inspector: Option-Click on URL in Styles sidebar does not work
https://bugs.webkit.org/show_bug.cgi?id=171569
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
Add missing `frame` parameter to `WebInspector.openURL`.
2017-05-03 Nikita Vasilyev <nvasilyev@apple.com>
Uncaught Exception: Can't make a ContentView for an unknown representedObject of type: IndexedDatabase
https://bugs.webkit.org/show_bug.cgi?id=167473
<rdar://problem/30249715>
Reviewed by Matt Baker.
When an indexed database is selected in the Storage navigation sidebar, show its host, security origin, and version.
Previously, selecting an indexed database didn't change the content view. It could lead to a misleading state
when an indexed database is selected in the sidebar, but the content view showed previously selected item such as
Cookies or Local Storage.
* UserInterface/Main.html:
* UserInterface/Views/ContentView.css:
(.content-view .details-section):
(.content-view .details-section > .content):
(.content-view .details-section > .content > .group > .row.simple > .label):
(.content-view .details-section:last-child):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):
* UserInterface/Views/IndexedDatabaseContentView.css: Added.
(.indexed-database.content-view):
(.indexed-database.content-view .indexed-database-details):
(.indexed-database.content-view .details-section > .header):
* UserInterface/Views/IndexedDatabaseContentView.js: Added.
(WebInspector.IndexedDatabaseContentView):
* UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js:
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.inspect):
Don't show the details sidebar for IndexedDB top level item since it has the same content as the content view.
* UserInterface/Views/StorageSidebarPanel.js:
(WebInspector.StorageSidebarPanel._treeSelectionDidChange):
* UserInterface/Views/StorageTabContentView.js:
(WebInspector.StorageTabContentView.prototype.canShowRepresentedObject):
(WebInspector.StorageTabContentView):
2017-05-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: 404 Image Load does not appear as a failure in Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=171587
<rdar://problem/13222846>
Reviewed by Matt Baker.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.createObjectURL):
This may return null if the data is not a Blob. This can happen if we
loaded non-base64Encoded text content for an Image. Such as a 404 response.
(WebInspector.Resource.prototype.hadLoadingError):
Consistent way to check for any kind of loading error.
(WebInspector.Resource.prototype.getImageSize):
Handle failure to create an object URL.
* UserInterface/Views/FontResourceContentView.js:
(WebInspector.FontResourceContentView.prototype.contentAvailable):
* UserInterface/Views/ImageResourceContentView.js:
(WebInspector.ImageResourceContentView.prototype.contentAvailable):
Handle failure to create an object URL.
:
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView):
(WebInspector.ResourceContentView.prototype.showGenericErrorMessage):
(WebInspector.ResourceContentView.prototype._protocolError): Deleted.
Provide a way for subclasses to show a generic resource loading error.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateStatus):
Use the consistent helper for denoting loading errors.
2017-05-02 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Remove GTK+ icon FontVariantSmallCaps.svg
https://bugs.webkit.org/show_bug.cgi?id=171542
Reviewed by Carlos Garcia Campos.
This image is not used and Apple's one was removed in Bug 148720.
* UserInterface/Images/gtk/FontVariantSmallCaps.svg: Removed.
2017-05-02 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Remove GTK+ icons AnimationPlayStatePaused.svg and AnimationPlayStateRunning.svg
https://bugs.webkit.org/show_bug.cgi?id=171540
Reviewed by Carlos Garcia Campos.
These images aren't used since r204152 (Bug 160566). Instead,
Plus13.svg and Minus.svg are used.
* UserInterface/Images/gtk/BreakpointActionAdd.svg: Removed.
* UserInterface/Images/gtk/BreakpointActionRemove.svg: Removed.
2017-04-30 Chris Dumez <cdumez@apple.com>
Drop support for legacy ClientRect / ClientRectList
https://bugs.webkit.org/show_bug.cgi?id=171418
Reviewed by Sam Weinig.
Drop ClientRectList-related code.
* UserInterface/Models/NativeFunctionParameters.js:
2017-04-27 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for different Script Timeline Views (Events and Call Trees)
https://bugs.webkit.org/show_bug.cgi?id=155077
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/CallTrees.svg: Added.
* UserInterface/Images/gtk/Events.svg: Added.
* UserInterface/Views/PathComponentIcons.css:
(body:not(.mac-platform, .windows-platform) .heap-snapshot-record .icon,):
(body:not(.mac-platform, .windows-platform) .events-icon .icon,): Deleted.
2017-04-27 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Remove unused ToggleControlToolbarItem.js
https://bugs.webkit.org/show_bug.cgi?id=171401
Reviewed by Joseph Pecoraro.
* UserInterface/Main.html:
* UserInterface/Views/ToggleControlToolbarItem.js: Removed.
2017-04-27 Brian Burg <bburg@apple.com>
Web Inspector: RTL: inherit system layout direction by default
https://bugs.webkit.org/show_bug.cgi?id=171402
<rdar://problem/30753626>
Reviewed by Joseph Pecoraro.
Web Inspector's layout direction should follow the system layout direction
by default now that most RTL bugs seem to be fixed. We are ready for more
feedback.
* UserInterface/Base/Main.js:
* UserInterface/Base/Setting.js:
Rename the existing "layout-direction" setting so that the new default
value is set properly even for people who have overridden the layout
direction while the setting was exposed to everyone.
* UserInterface/Views/GeneralSettingsView.js:
(WebInspector.GeneralSettingsView.prototype.initialLayout):
(WebInspector.GeneralSettingsView.prototype.layout):
(WebInspector.GeneralSettingsView):
Make the layout direction override setting only visible when DebugUI
is turned on. This remains only for engineers to quickly check layout bugs.
* UserInterface/Views/SettingsView.js:
(WebInspector.SettingsView.prototype.addGroupWithCustomSetting):
(WebInspector.SettingsView.prototype.addCustomSetting): Deleted.
Refactor the convenience method to return both the group and the
custom setting. This allows us to toggle .hidden on the entire
row for the Layout Direction setting (label and editor).
* Localizations/en.lproj/localizedStrings.js:
Unlocalize the setting strings since they are only shown in engineering builds now.
2017-04-27 Brian Burg <bburg@apple.com>
Web Inspector: RTL: fix alignment of "truncated call stack" message
https://bugs.webkit.org/show_bug.cgi?id=170477
Reviewed by Devin Rousso.
* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread + ol > .item.truncated-call-frames):
(body[dir=ltr] .tree-outline > .item.thread + ol > .item.truncated-call-frames):
(body[dir=rtl] .tree-outline > .item.thread + ol > .item.truncated-call-frames):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
(body[dir=ltr] .tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
(body[dir=rtl] .tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
2017-04-27 Brian Burg <bburg@apple.com>
Web Inspector: RTL: layout issues in Open Resource Dialog
https://bugs.webkit.org/show_bug.cgi?id=170551
Reviewed by Matt Baker.
We need to flip the cancel and search icons, and flip padding
in the tree outline that contains search results.
I am still not happy with the title/subtitle ordering
(i.e., the domain vs the resource name), but this issue will
be solved primarily in the navigation sidebar first and then
adjusted for Open Resource Dialog if those changes are not
sufficient.
* UserInterface/Views/OpenResourceDialog.css:
(.open-resource-dialog > .field):
(body[dir=ltr] .open-resource-dialog > .field):
(body[dir=rtl] .open-resource-dialog > .field):
(.open-resource-dialog > .field::before):
(body[dir=ltr] .open-resource-dialog > .field::before):
(body[dir=rtl] .open-resource-dialog > .field::before):
(.open-resource-dialog > .field > input):
(body[dir=ltr] .open-resource-dialog > .field > input):
(body[dir=rtl] .open-resource-dialog > .field > input):
(.open-resource-dialog > .field > img):
(body[dir=ltr] .open-resource-dialog > .field > img):
(body[dir=rtl] .open-resource-dialog > .field > img):
(.open-resource-dialog > .tree-outline .item):
(body[dir=ltr] .open-resource-dialog > .tree-outline .item):
(body[dir=rtl] .open-resource-dialog > .tree-outline .item):
2017-04-27 Brian Burg <bburg@apple.com>
Web Inspector: fix tooltip wording for Reload button
https://bugs.webkit.org/show_bug.cgi?id=171073
<rdar://problem/31378524>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
2017-04-27 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: Add new GTK+ icons for instrument icons
https://bugs.webkit.org/show_bug.cgi?id=153892
<rdar://problem/24510460>
Reviewed by Joseph Pecoraro.
Add more free icons from art-libre symbolic and removed some
unused ones for the Web Inspector in GTK+.
* UserInterface/Images/gtk/Colors.png: Removed.
* UserInterface/Images/gtk/Colors@2x.png: Removed.
* UserInterface/Images/gtk/ColorsLarge.png: Removed.
* UserInterface/Images/gtk/ColorsLarge@2x.png: Removed.
* UserInterface/Images/gtk/Frames.png: Removed.
* UserInterface/Images/gtk/Frames@2x.png: Removed.
* UserInterface/Images/gtk/HeapAllocationsInstrument.svg: Added.
* UserInterface/Images/gtk/LayoutInstrument.svg: Added.
* UserInterface/Images/gtk/MemoryInstrument.svg: Added.
* UserInterface/Images/gtk/Network.png: Removed.
* UserInterface/Images/gtk/Network@2x.png: Removed.
* UserInterface/Images/gtk/NetworkInstrument.svg: Added.
* UserInterface/Images/gtk/NetworkLarge.png: Removed.
* UserInterface/Images/gtk/NetworkLarge@2x.png: Removed.
* UserInterface/Images/gtk/RenderingFramesInstrument.svg: Added.
* UserInterface/Images/gtk/Script.png: Removed.
* UserInterface/Images/gtk/Script@2x.png: Removed.
* UserInterface/Images/gtk/ScriptLarge.png: Removed.
* UserInterface/Images/gtk/ScriptLarge@2x.png: Removed.
* UserInterface/Images/gtk/ScriptsInstrument.svg: Added.
* UserInterface/Views/TimelineIcons.css:
(body:not(.mac-platform, .windows-platform) .network-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .network-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .layout-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .layout-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .script-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .script-icon.large .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .memory-icon .icon): Deleted.
(body:not(.mac-platform, .windows-platform) .heap-allocations-icon .icon): Deleted.
2017-04-27 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: gtk/NavigationItemCurleyBraces.svg is licensed under NonCommercial CC
https://bugs.webkit.org/show_bug.cgi?id=170902
Reviewed by Michael Catanzaro.
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
Replaced with new one created by me.
2017-04-27 Fujii Hironori <Hironori.Fujii@sony.com>
[GTK] Web Inspector: some SVG images are specified 'currentColor' incorrectly
https://bugs.webkit.org/show_bug.cgi?id=170977
Reviewed by Michael Catanzaro.
The keyword 'currentColor' is specifed manually in Bug 150602.
But, some SVG images are specified incorrectly.
* UserInterface/Images/gtk/NavigationItemTypes.svg: Do not stroke
with currentColor, but fill.
* UserInterface/Images/gtk/UpDownArrows.svg: Ditto.
2017-04-27 Carlos Garcia Campos <cgarcia@igalia.com>
[GTK] Remote inspector should support inspecting targets with previous version of backend commands
https://bugs.webkit.org/show_bug.cgi?id=171267
Reviewed by Michael Catanzaro.
Allow to use data URLs for script-src.
* UserInterface/Main.html:
2017-04-25 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r209882): Web Inspector: Command-G does not work in the console
https://bugs.webkit.org/show_bug.cgi?id=170555
<rdar://problem/31481247>
Reviewed by Brian Burg.
Command-G didn't work in the console when the console content view was in focus. It only
worked when the search input field was focused.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
(WebInspector.LogContentView.prototype.highlightPreviousSearchMatch): Added.
(WebInspector.LogContentView.prototype.findBannerRevealNextResult):
(WebInspector.LogContentView.prototype.highlightNextSearchMatch): Added.
Re-introduce highlightPreviousSearchMatch and highlightNextSearchMatch methods that were
removed in r209882.
2017-04-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network Tab - Sorting by Priority Column hides all rows in the datagrid (uncaught exception)
https://bugs.webkit.org/show_bug.cgi?id=171312
<rdar://problem/31828554>
Reviewed by Brian Burg.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.comparePriority):
Provide a helper for compariting NetworkPriority enum values.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.dataGridSortComparator):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.dataGridSortComparator):
Custom sort handler for priority.
2017-04-25 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r214863): Web Inspector: Uncaught Exception when losing focus from a selector field
https://bugs.webkit.org/show_bug.cgi?id=171254
<rdar://problem/31813959>
Reviewed by Joseph Pecoraro.
The event.relatedTarget of a blur event contains the element where focus moved to.
In some cases this can be null, such as if the user leaves the application window.
For example Command+Tab to switch to another application.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
2017-04-25 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Open the new bug page in the new tab
https://bugs.webkit.org/show_bug.cgi?id=171253
Reviewed by Joseph Pecoraro.
* UserInterface/Debug/UncaughtExceptionReporter.js:
(createErrorSheet):
2017-04-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "Space" localized string is not loaded in combined and minified builds
https://bugs.webkit.org/show_bug.cgi?id=171283
<rdar://problem/30871371>
Reviewed by Brian Burg.
In combined and minified builds, the document.write() to load the
localized strings script doesn't happen before the KeyboardShortcut
global code in Main.js evaluates, so there is no UIString because
window.localizedStrings hasn't populated yet. Since this is the only
instance, populate the display UIString lazily and provide warnings
in minified builds if this happens.
* UserInterface/Base/LoadLocalizedStrings.js:
(WebInspector.UIString):
Provide a warning if a UIString was attempted before the strings have loaded.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
For this rare instance, populate the display name of the string when we are
sure strings have loaded.
* UserInterface/Models/KeyboardShortcut.js:
Revert the UIString here, but note that it will be populated later.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.setCachedResponseBodySize):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
Address console.asserts not ending in semicolon warnings produced during
optimized builds. Without semicolons they are not stripped.
2017-04-25 Fujii Hironori <Hironori.Fujii@sony.com>
Web Inspector: TypeError:​ sourceCodeLocation.populateLiveDisplayLocationTooltip is not a function
https://bugs.webkit.org/show_bug.cgi?id=171259
Reviewed by Joseph Pecoraro.
The first argument of WebInspector.createSourceCodeLocationLink
should be SourceCodeLocation type.
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
Pass 'callFrame.sourceCodeLocation' instead of 'value' to the
first argument.
2017-04-24 Matt Baker <mattbaker@apple.com>
Web Inspector: DOM/XHR breakpoint sections should be collapsed by default
https://bugs.webkit.org/show_bug.cgi?id=170931
Reviewed by Brian Burg.
Set the default collapsed parameter for DOM / XHR Breakpoints sections,
and auto-expand the DOM Breakpoints when a breakpoint is added.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
2017-04-21 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Add titles to Network grid items for easier reading when text overflows
https://bugs.webkit.org/show_bug.cgi?id=170792
Reviewed by Brian Burg.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype._cachedCellContent):
Do not add a title if the text is an em-dash, as that title will not convey any information.
2017-04-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Don't show the Search tab if it's open and matches the representedObject
https://bugs.webkit.org/show_bug.cgi?id=168709
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.handlePossibleLinkClick):
(WebInspector.openURL):
(WebInspector.showSourceCode):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector._frameWasAdded):
(WebInspector.createSourceCodeLocationLink):
(WebInspector.linkifyLocation):
(WebInspector.linkifyElement):
Add `options` parameter to provide greater customization. Also fix some style issues.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.hasRepresentedObject): Deleted.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.hasRepresentedObject): Deleted.
* UserInterface/Views/NetworkTabContentView.js:
(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.canShowRepresentedObject):
Ensure that the Search tab can only display resources that it has entries for in its view.
Also rework the way in which this is determined.
* UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showMainResourceForFrame):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
(WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._linkifyLocation):
* UserInterface/Views/DOMDetailsSidebarPanel.js:
(WebInspector.DOMDetailsSidebarPanel.prototype._mouseWasClicked):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._mouseWasClicked.followLink):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._showCustomElementDefinition):
* UserInterface/Views/DebuggerDashboardView.js:
(WebInspector.DebuggerDashboardView.prototype._rebuildLocation):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonGotoArrow):
* UserInterface/Views/ErrorObjectView.js:
(WebInspector.ErrorObjectView.makeSourceLinkWithPrefix):
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
(WebInspector.ObjectTreeBaseTreeElement):
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):
* UserInterface/Views/ProfileDataGridNode.js:
(WebInspector.ProfileDataGridNode.prototype._displayContent):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._goToRequestDataClicked):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
* UserInterface/Views/RulesStyleDetailsPanel.js:
(WebInspector.RulesStyleDetailsPanel.prototype.refresh.insertMediaOrInheritanceLabel):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
* UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
(WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._createNameCellContent):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.createCellContent):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
Ensure that the Search tab is never shown from links generated by these functions.
Also do the same for the Network tab in some cases.
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.canShowContentViewForTreeElement): Deleted.
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement): Deleted.
Drive-by cleanup: remove dead code.
2017-04-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Add regular expression support to XHR breakpoints
https://bugs.webkit.org/show_bug.cgi?id=170099
<rdar://problem/31558082>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
New strings for the Add XHR Breakpoint popover.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager):
(WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
Update for new XHRBreakpoint constructor.
(WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint):
Set `isRegex` flag.
* UserInterface/Main.html:
New files for CodeMirror mode and breakpoint popover.
* UserInterface/Models/XHRBreakpoint.js:
Breakpoint can be of type Text or RegularExpression.
(WebInspector.XHRBreakpoint):
(WebInspector.XHRBreakpoint.prototype.get type):
(WebInspector.XHRBreakpoint.prototype.get serializableInfo):
* UserInterface/Views/CodeMirrorRegexMode.css: Added.
(.cm-s-default .cm-regex-character-set):
(.cm-s-default .cm-regex-character-set-negate):
(.cm-s-default :matches(.cm-regex-escape, .cm-regex-escape-2, .cm-regex-escape-3)):
(.cm-s-default :matches(.cm-regex-group, .cm-regex-lookahead)):
(.cm-s-default .cm-regex-quantifier):
(.cm-s-default :matches(.cm-regex-literal, .cm-regex-special, .cm-regex-backreference)):
Colors for regular expression syntax highlighting. The regex mode emits
more class names than we have separate colors for, allowing for further
customization in the future.
* UserInterface/Views/CodeMirrorRegexMode.js: Added.
(characterSetTokenizer):
(consumeEscapeSequence):
(tokenBase):
New CodeMirror mode for highlighting "text/x-regex" content.
* UserInterface/Views/DebuggerSidebarPanel.js:
Use new popover type for creating XHR breakpoints.
(WebInspector.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked):
(WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
(WebInspector.DebuggerSidebarPanel):
* UserInterface/Views/XHRBreakpointPopover.css: Added.
(.popover .xhr-breakpoint-content):
(.popover .xhr-breakpoint-content > .editor-wrapper):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
(body[dir=ltr] .popover .xhr-breakpoint-content > .editor-wrapper > .editor):
(body[dir=rtl] .popover .xhr-breakpoint-content > .editor-wrapper > .editor):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor > .CodeMirror):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor > .CodeMirror-scroll):
Styles for new popover.
* UserInterface/Views/XHRBreakpointPopover.js: Added.
New popover class. Includes a picker for selecting breakpoint type
(Text or RegularExpression), and has an improved popover caption. Input
field style and placeholder text changes based on the breakpoint type.
(WebInspector.XHRBreakpointPopover):
(WebInspector.XHRBreakpointPopover.prototype.get result):
(WebInspector.XHRBreakpointPopover.prototype.get type):
(WebInspector.XHRBreakpointPopover.prototype.get value):
(WebInspector.XHRBreakpointPopover.prototype.show.addOption):
(WebInspector.XHRBreakpointPopover.prototype.show):
(WebInspector.XHRBreakpointPopover.prototype._createEditor):
(WebInspector.XHRBreakpointPopover.prototype._updateEditor):
(WebInspector.XHRBreakpointPopover.prototype._presentOverTargetElement):
* UserInterface/Views/XHRBreakpointTreeElement.js:
(WebInspector.XHRBreakpointTreeElement):
Differentiate breakpoint type by enclosing subtitle in either double quotes
or regex-literal delimiters, depending on the type of breakpoint.
2017-04-19 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r209882): Web Inspector: Console's filter bar has text search field, but the next/previous buttons don't do anything
https://bugs.webkit.org/show_bug.cgi?id=170556
<rdar://problem/31481755>
Reviewed by Matt Baker.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.performSearch):
Update numberOfResults setter, which sets "disabled" attribute to false when numberOfResults > 0.
2017-04-18 Matt Baker <mattbaker@apple.com>
Web Inspector: XHR breakpoints shouldn't be cleared from the sidebar on reload
https://bugs.webkit.org/show_bug.cgi?id=170930
Reviewed by Joseph Pecoraro.
XHR breakpoints aren't associated with the main resource, and shouldn't
be cleared from the manager or sidebar UI When the main resource changes.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
* UserInterface/Controllers/XHRBreakpointTreeController.js:
(WebInspector.XHRBreakpointTreeController):
(WebInspector.XHRBreakpointTreeController.prototype._mainResourceDidChange): Deleted.
2017-04-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Network columns don't get saved when Web Inspector is closed
https://bugs.webkit.org/show_bug.cgi?id=170373
<rdar://problem/31386336>
Reviewed by Matt Baker.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.setColumnVisible):
(WebInspector.DataGrid.prototype._contextMenuInHeader):
The context menu was often passing `undefined` as the visible value
which would cause the setting to not be saved appropriately. Ensure
we always get an explicit boolean.
2017-04-17 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use `text-align: start` for DataGrid headers
https://bugs.webkit.org/show_bug.cgi?id=170871
Reviewed by Matt Baker.
`text-align: start` didn't work for th elements.
It was fixed in <webkit.org/b/141417>.
* UserInterface/Views/DataGrid.css:
(.data-grid th):
(body[dir=ltr] .data-grid th): Deleted.
(body[dir=rtl] .data-grid th): Deleted.
2017-04-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Doesn't show size of compressed content correctly
https://bugs.webkit.org/show_bug.cgi?id=155112
<rdar://problem/25006728>
Reviewed by Alex Christensen and Timothy Hatcher.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
Set an exact size.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get requestHeadersTransferSize):
(WebInspector.Resource.prototype.get requestBodyTransferSize):
(WebInspector.Resource.prototype.get responseHeadersTransferSize):
(WebInspector.Resource.prototype.get responseBodyTransferSize):
(WebInspector.Resource.prototype.get cachedResponseBodySize):
(WebInspector.Resource.prototype.get size):
(WebInspector.Resource.prototype.get networkEncodedSize):
(WebInspector.Resource.prototype.get networkDecodedSize):
(WebInspector.Resource.prototype.get networkTotalTransferSize):
(WebInspector.Resource.prototype.get estimatedNetworkEncodedSize):
(WebInspector.Resource.prototype.get estimatedTotalTransferSize):
(WebInspector.Resource.prototype.get compressed):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.prototype.updateWithMetrics):
(WebInspector.Resource.prototype.setCachedResponseBodySize):
(WebInspector.Resource.prototype.increaseSize):
(WebInspector.Resource.prototype.increaseTransferSize):
(WebInspector.Resource.prototype.get encodedSize): Deleted.
(WebInspector.Resource.prototype.get transferSize): Deleted.
Be more explicit with size getters.
(WebInspector.Resource.prototype.updateWithMetrics):
If we receive the size metrics, update the specific metric values.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshCompressed):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshDecodedSize):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshTransferSize):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
Show exact values if we have them, otherwise fall back to the calculated
values during loading.
2017-04-17 Jon Davis <jond@apple.com>
Web Inspector: new icon for Disable Caches button in Network Tab
https://bugs.webkit.org/show_bug.cgi?id=170196
Reviewed by Joseph Pecoraro.
* UserInterface/Images/IgnoreCaches.svg: Added.
Added new art for the Disable Caches button.
* UserInterface/Images/gtk/IgnoreCaches.svg: Added.
Used GTK's StepOver.svg for fallback art for GTK.
* UserInterface/Images/NavigationItemClear.svg:
Improved artwork for Clear Console button icon to match the weight and
style of the Disable Caches button icon.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
2017-04-17 Matt Baker <mattbaker@apple.com>
Web Inspector: Enabled state of "All Requests" XHR breakpoint not restored correctly
https://bugs.webkit.org/show_bug.cgi?id=170916
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager):
Set breakpoint with backend agent, if enabled.
2017-04-17 Matt Baker <mattbaker@apple.com>
Web Inspector: Show pause reason for "All Requests" XHR breakpoint
https://bugs.webkit.org/show_bug.cgi?id=170895
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
Add generic pause reason text: "Requesting: <url>".
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype.xhrBreakpointForURL):
Relocated helper method from the sidebar.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Add an XHR breakpoint tree element when pause data contains a breakpoint
URL, otherwise just add a generic text row.
2017-04-17 Matt Baker <mattbaker@apple.com>
Web Inspector: XHR breakpoints restored from settings do not appear in the sidebar
https://bugs.webkit.org/show_bug.cgi?id=170890
Reviewed by Joseph Pecoraro.
Need to check for existing breakpoints when XHRBreakpointTreeController
is constructed, instead of just listening for added breakpoints.
* UserInterface/Controllers/XHRBreakpointTreeController.js:
(WebInspector.XHRBreakpointTreeController):
(WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointAdded):
(WebInspector.XHRBreakpointTreeController.prototype._addTreeElement):
2017-04-14 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: messages with non-latin letters are displayed incorrectly
https://bugs.webkit.org/show_bug.cgi?id=170760
Reviewed by Joseph Pecoraro.
Add payloadLength property, which is used to display size. When payloadLength is unavailable,
it is calculated from payloadData by Web Inspector frontend.
This fixes <webkit.org/b/170609> Web Inspector: WebSockets: Transferred size is incorrect.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype._webSocketFrameReceivedOrSent):
* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.prototype.addFrame):
2017-04-13 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Implement autocompletion for CSS variables
https://bugs.webkit.org/show_bug.cgi?id=154441
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.completionControllerCompletionsNeeded):
Add CSS variables to the list of matching completions based on those defined in the current
node's computed style.
2017-04-13 Ross Kirsling <ross.kirsling@sony.com>
Web Inspector: No context menu available via ENABLE_INSPECTOR_SERVER
https://bugs.webkit.org/show_bug.cgi?id=170705
Reviewed by Joseph Pecoraro.
Reintroduce old SoftContextMenu class (removed in r157278) and apply various fixes:
- Remove legacy globals and prototype extensions.
- Align JS/CSS style with current front-end code.
- Update UI and fix UX to replicate the macOS native context menu.
* Scripts/copy-user-interface-resources.pl:
Add copyright line for Sony Interactive Entertainment.
* UserInterface/Base/InspectorFrontendHostStub.js:
(WebInspector.InspectorFrontendHostStub.prototype.showContextMenu):
Use SoftContextMenu.
* UserInterface/Main.html:
Include SoftContextMenu.
* UserInterface/Views/SoftContextMenu.css: Added.
(.soft-context-menu-glass-pane):
(.soft-context-menu):
(.soft-context-menu > .item):
(.soft-context-menu > .item.disabled):
(.soft-context-menu > .item.highlighted):
(.soft-context-menu > .item > .checkmark):
(.soft-context-menu > .item > .label):
(.soft-context-menu > .item > .submenu-arrow):
(.soft-context-menu > .separator):
(.soft-context-menu > .separator > .line):
* UserInterface/Views/SoftContextMenu.js: Added.
(WebInspector.SoftContextMenu):
(WebInspector.SoftContextMenu.prototype.show):
(WebInspector.SoftContextMenu.prototype._consumeEvent):
(WebInspector.SoftContextMenu.prototype._parentGlassPaneElement):
(WebInspector.SoftContextMenu.prototype._createMenuItem):
(WebInspector.SoftContextMenu.prototype._createSeparator):
(WebInspector.SoftContextMenu.prototype._repositionMenuOnScreen):
(WebInspector.SoftContextMenu.prototype._showSubMenu):
(WebInspector.SoftContextMenu.prototype._hideSubMenu):
(WebInspector.SoftContextMenu.prototype._menuItemContextMenu):
(WebInspector.SoftContextMenu.prototype._menuItemMouseDown):
(WebInspector.SoftContextMenu.prototype._menuItemMouseUp):
(WebInspector.SoftContextMenu.prototype._menuItemMouseOver):
(WebInspector.SoftContextMenu.prototype._menuItemMouseOut):
(WebInspector.SoftContextMenu.prototype._menuKeyDown):
(WebInspector.SoftContextMenu.prototype._glassPaneMouseDown):
(WebInspector.SoftContextMenu.prototype._focus):
(WebInspector.SoftContextMenu.prototype._triggerAction):
(WebInspector.SoftContextMenu.prototype._highlightMenuItem):
(WebInspector.SoftContextMenu.prototype._highlightPrevious):
(WebInspector.SoftContextMenu.prototype._highlightNext):
(WebInspector.SoftContextMenu.prototype._discardMenu):
(WebInspector.SoftContextMenu.prototype._discardSubMenus):
2017-04-13 Brian Burg <bburg@apple.com>
Web Inspector: RTL: goto arrow is floated to the wrong side
https://bugs.webkit.org/show_bug.cgi?id=170816
Reviewed by Matt Baker.
Float it to the other side if necessary.
* UserInterface/Views/Main.css:
(.go-to-link):
(body[dir=ltr] .go-to-link:not(.dont-float)):
(body[dir=rtl] .go-to-link:not(.dont-float)):
2017-04-12 Dan Bernstein <mitz@apple.com>
[Mac] Future-proof .xcconfig files
https://bugs.webkit.org/show_bug.cgi?id=170802
Reviewed by Tim Horton.
* Configurations/Base.xcconfig:
* Configurations/DebugRelease.xcconfig:
* Configurations/Version.xcconfig:
2017-04-11 Matt Baker <mattbaker@apple.com>
Web Inspector: checkboxes in Settings screen use inappropriate layout
https://bugs.webkit.org/show_bug.cgi?id=166993
<rdar://problem/30002272>
Reviewed by Devin Rousso.
* Localizations/en.lproj/localizedStrings.js:
New checkbox setting strings.
* UserInterface/Main.html:
New settings view classes.
* UserInterface/Views/GeneralSettingsView.js: Added.
(WebInspector.GeneralSettingsView):
(WebInspector.GeneralSettingsView.prototype.initialLayout):
Move settings UI creation from SettingsTabContentView.
* UserInterface/Views/SettingEditor.js: Added.
Basic setting editor UI for the following input types: checkbox,
number, and select. In the future it may be useful to include
additional types, such as radio buttons.
(WebInspector.SettingEditor):
(WebInspector.SettingEditor.createForSetting):
(WebInspector.SettingEditor.prototype.get element):
(WebInspector.SettingEditor.prototype.get type):
(WebInspector.SettingEditor.prototype.get label):
(WebInspector.SettingEditor.prototype.get value):
(WebInspector.SettingEditor.prototype.set value):
(WebInspector.SettingEditor.prototype._createEditorElement):
* UserInterface/Views/SettingsGroup.js: Added.
A container holding editors for one or more WebInspector.Settings.
Every editor belongs to a group. SettingsView provides convenience
methods for adding settings and groups, so create instances directly
shouldn't normally be necessary.
(WebInspector.SettingsGroup):
(WebInspector.SettingsGroup.prototype.get element):
(WebInspector.SettingsGroup.prototype.addSetting):
(WebInspector.SettingsGroup.prototype.addCustomSetting):
* UserInterface/Views/SettingsTabContentView.css:
Refactored styles to more closely match Xcode settings UI.
Eliminated redundant use of "setting" from CSS class names.
(.content-view.settings):
(.content-view.settings .navigation-bar .item.radio.button.text-only):
(.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
(.content-view.settings > .settings-view > .separator):
(.content-view.settings > .settings-view > .container):
(.content-view.settings > .settings-view > .container > .title):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .title):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .title):
(.content-view.settings > .settings-view > .container > .editor-group):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
(.content-view.settings > .settings-view > .container > .editor-group > .editor select):
(.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
(.content-view.settings > .header): Deleted.
(.content-view.settings > .separator): Deleted.
(.content-view.settings > .setting-container): Deleted.
(.content-view.settings > .setting-container.combined): Deleted.
(.content-view.settings > .setting-container > .setting-name): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-name): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-name): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller select): Deleted.
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]): Deleted.
* UserInterface/Views/SettingsTabContentView.js:
To better organize the growing number of settings, multiple settings views
are now supported, with a navigation bar for switching between them. For
now there is a single "General" setting view, and and the navigation bar
is hidden. Adding a second view will cause the bar to be shown.
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.get type):
(WebInspector.SettingsTabContentView.prototype.get selectedSettingsView):
(WebInspector.SettingsTabContentView.prototype.set selectedSettingsView):
(WebInspector.SettingsTabContentView.prototype.addSettingsView):
(WebInspector.SettingsTabContentView.prototype._navigationItemSelected):
(WebInspector.SettingsTabContentView.prototype.layout): Deleted.
No longer needed.
* UserInterface/Views/SettingsView.js: Added.
Base class for displaying editing UI for a collection of related
WebInspector.Setting objects.
(WebInspector.SettingsView):
(WebInspector.SettingsView.prototype.get identifier):
(WebInspector.SettingsView.prototype.get displayName):
A string suitable for display in a NavigationBar showing a list of
SettingsViews (e.g. "General", "Text Editing", "Fonts & Colors", etc).
(WebInspector.SettingsView.prototype.addSetting):
Add UI for a setting, consisting of a title, an editor appropriate for
the setting's value type, and optional label and formatting options.
For example:
addSetting("Setting 1:", new WebInspector.Setting(…, true), "Item one")
addSetting("Setting 2:", new WebInspector.Setting(…, 1), "units")
will create a checkbox and number input field:
Setting 1: [x] Item one
Setting 2: [ 1] units
(WebInspector.SettingsView.prototype.addCustomSetting):
Add UI for a specific editor type, with optional formatting options.
A setting can be updated in response to changes in the editor's value.
(WebInspector.SettingsView.prototype.addGroup):
Add a group, for listing multiple settings under one title. For example:
group = addGroup("Title:")
group.addSetting(new WebInspector.Setting(…, true), "Item one")
group.addSetting(new WebInspector.Setting(…, false), "Item two")
will create two checkboxes under the same title:
Title: [x] Item one
[ ] Item two
(WebInspector.SettingsView.prototype.addSeparator):
Add vertical space between two settings or groups.
2017-04-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: Don't clip data in the data grid
https://bugs.webkit.org/show_bug.cgi?id=170559
Reviewed by Timothy Hatcher.
Long lines without spaces should be broken down into several lines instead of being ellipsized.
* UserInterface/Views/WebSocketContentView.css:
(.web-socket.content-view > .data-grid td.data-column,):
2017-04-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Placeholder text is clipped in the 'Enter Class Name' field at the bottom of Rules style sidebar in some localizations
https://bugs.webkit.org/show_bug.cgi?id=167641
<rdar://problem/26541953>
Reviewed by Joseph Pecoraro.
Make the "Enter Class Name" text field span the entire width of the Styles sidebar.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > input[type="checkbox"]): Deleted.
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .add-class-icon): Deleted.
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class.active > .add-class-icon,): Deleted.
* UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
(WebInspector.CSSStyleDetailsSidebarPanel.prototype.initialLayout):
Remove the checkbox, which didn't do anything, and the plus icon. Make the "Enter Class Name" text field visible by default.
2017-04-10 Jon Lee <jonlee@apple.com>
Update localizable strings to "full screen" from "fullscreen"
https://bugs.webkit.org/show_bug.cgi?id=170675
rdar://problem/28207034
Reviewed by Antoine Quint.
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.EventType.displayName): For localizable strings, it should consistently be
"full screen" instead of "fullscreen".
2017-04-09 Devin Rousso <webkit@devinrousso.com>
Web Inspector: tabbing in Styles sidebar is broken when additional ":" and ";" are in the property value
https://bugs.webkit.org/show_bug.cgi?id=170184
Reviewed by Matt Baker.
New tests:
- inspector/unit-tests/text-utilities.html
* UserInterface/Base/TextUtilities.js: Added.
(WebInspector.rangeForNextCSSNameOrValue):
Consolidate logic for finding the next range to highlight in a CSS string given a starting index.
* UserInterface/Main.html:
* UserInterface/Test.html:
Include TextUtilities.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._highlightNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._rangeForNextNameOrValue):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
Utilize TextUtilities for range-finding logic.
2017-04-08 Simon Fraser <simon.fraser@apple.com>
Unprefix CSS cursor values grab and grabbing
https://bugs.webkit.org/show_bug.cgi?id=170543
Reviewed by Jon Lee.
Sort the cursor autosuggestions to match the order in the spec, and add the unprefixed
grab and grabbing values.
* UserInterface/Models/CSSKeywordCompletions.js:
2017-04-07 Matt Baker <mattbaker@apple.com>
Web Inspector: DOM/XHR breakpoint tree elements shouldn't persist their represented objects
https://bugs.webkit.org/show_bug.cgi?id=170611
<rdar://problem/31506161>
Reviewed by Joseph Pecoraro.
Prevent tree elements for DOM and XHR breakpoints from persisting their
represented objects.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
2017-04-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Source Map Resources should show up in the Debugger Sources list
https://bugs.webkit.org/show_bug.cgi?id=170581
<rdar://problem/31269140>
Reviewed by Matt Baker.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
Include SourceMapResources in the DebuggerSidebar's Sources tree outline.
2017-04-06 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show all headers in the Request Headers section of the Resource details sidebar
https://bugs.webkit.org/show_bug.cgi?id=16531
<rdar://problem/5712895>
Reviewed by Timothy Hatcher.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.updateWithMetrics):
Update request headers if provided in metrics.
2017-04-06 Matt Baker <mattbaker@apple.com>
Web Inspector: Reorder Debugger tab sidebar panels: Scope Chain, Resource, Probes
https://bugs.webkit.org/show_bug.cgi?id=170418
<rdar://problem/31410771>
Reviewed by Timothy Hatcher.
Maintain the sidebar panel order defined by TabContentView when adding
and removing panels.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype.showDetailsSidebarPanels):
Insert sidebar panel based on the panel order defined by TabContentView.
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView):
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.addSidebarPanel):
Implemented as an insert at the end.
(WebInspector.Sidebar.prototype.insertSidebarPanel):
Allow inserting into the sidebar panel collection.
(WebInspector.Sidebar.prototype.removeSidebarPanel):
Remove unused return value.
2017-04-05 Matt Baker <mattbaker@apple.com>
Web Inspector: Probe values not showing in sidebar
https://bugs.webkit.org/show_bug.cgi?id=170143
Reviewed by Joseph Pecoraro.
Force the DataGrid to refresh its layout after adding a probe sample.
* UserInterface/Views/ProbeSetDataGrid.css:
(.details-section.probe-set .data-grid tr.data-updated):
(.details-section.probe-set .data-grid > tr.data-updated): Deleted.
Drive-by fix: selector didn't match any rows.
* UserInterface/Views/ProbeSetDataGrid.js:
(WebInspector.ProbeSetDataGrid.prototype._updateNodeForFrame):
2017-04-05 Matt Baker <mattbaker@apple.com>
Web Inspector: XHR breakpoints should be global
https://bugs.webkit.org/show_bug.cgi?id=170033
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
Shorten XHR breakpoint tree element "URL contains:" title to "URL".
* UserInterface/Controllers/DOMDebuggerManager.js:
Change storage of XHR breakpoints from a map to a simple array.
(WebInspector.DOMDebuggerManager):
(WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
(WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
Dispatch the "breakpoint added" event immediately after adding the
breakpoint, rather than waiting for it to resolve.
(WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
* UserInterface/Models/XHRBreakpoint.js:
An XHR breakpoint should not be associated with a particular document.
(WebInspector.XHRBreakpoint):
(WebInspector.XHRBreakpoint.prototype.get serializableInfo):
(WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
(WebInspector.XHRBreakpoint.prototype.get documentURL): Deleted.
* UserInterface/Views/DebuggerSidebarPanel.css:
Use default emdash-separated title/subtitle style instead of the
custom "URL contains:" labeling.
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle):
(.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle:before): Deleted.
(body[dir=ltr] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
(body[dir=rtl] .sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
(WebInspector.DebuggerSidebarPanel):
* UserInterface/Views/XHRBreakpointTreeElement.js:
(WebInspector.XHRBreakpointTreeElement):
2017-04-04 Brian Burg <bburg@apple.com>
Web Inspector: RTL: layout issues in Type Profiler popovers
https://bugs.webkit.org/show_bug.cgi?id=170467
Reviewed by Timothy Hatcher.
Flip some margins and padding. Remove the -1px leading margin for
the prototype disclosure button, as it is unnecessary and looks
(more) wrong when in RTL.
* UserInterface/Views/TypeTreeElement.css:
(.item.type-tree-element > .disclosure-button):
(.item.type-tree-element.prototype):
(body[dir=ltr] .item.type-tree-element.prototype):
(body[dir=rtl] .item.type-tree-element.prototype):
* UserInterface/Views/TypeTreeView.css:
(.tree-outline.type):
(body[dir=ltr] .tree-outline.type):
(body[dir=rtl] .tree-outline.type):
(.tree-outline.type li .empty-message):
(body[dir=ltr] .tree-outline.type li .empty-message):
(body[dir=rtl] .tree-outline.type li .empty-message):
2017-04-04 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include more Network information in Resource Details Sidebar
https://bugs.webkit.org/show_bug.cgi?id=170470
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
Updated localized strings.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.displayNameForProtocol):
(WebInspector.Resource.displayNameForPriority):
Aggregate all display name helpers here.
* UserInterface/Views/DetailsSectionSimpleRow.js:
(WebInspector.DetailsSectionSimpleRow.prototype.get tooltip):
(WebInspector.DetailsSectionSimpleRow.prototype.set tooltip):
Allow setting a tooltip on the value.
* UserInterface/Views/NetworkGridContentView.css:
(.cache-type):
Cache type shows up in multiple places. Simplify the CSS to apply anywhere.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Updated column names.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
(WebInspector.ResourceDetailsSidebarPanel.prototype._cachedRowValue):
Include more detail information in the sidebar.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype._displayNameForPriority): Deleted.
Use shared code for display names.
2017-04-04 Brian Burg <bburg@apple.com>
Web Inspector: RTL: fix alignment of close button shown while docked
https://bugs.webkit.org/show_bug.cgi?id=170472
Reviewed by Matt Baker.
* UserInterface/Views/Toolbar.css:
(.toolbar .control-section):
(body[dir=ltr] .toolbar .control-section):
(body[dir=rtl] .toolbar .control-section):
2017-04-04 Brian Burg <bburg@apple.com>
Web Inspector: RTL: layout issues in debugger dashboard, arrows are on wrong side
https://bugs.webkit.org/show_bug.cgi?id=170425
Reviewed by Devin Rousso.
We need to move the up/down dashboard arrows to the trailing side for RTL.
Clean up some messy spacing rules so that the source location does not
overlap the arrows or get too close to the function icon.
* UserInterface/Views/DashboardContainerView.css:
(.toolbar .dashboard):
(body[dir=ltr] .toolbar .dashboard):
(body[dir=rtl] .toolbar .dashboard):
(.dashboard-container .advance-arrow):
(body[dir=ltr] .dashboard-container .advance-arrow):
(body[dir=rtl] .dashboard-container .advance-arrow):
(.toolbar.label-only .dashboard-container .advance-arrow):
(body[dir=ltr] .toolbar.label-only .dashboard-container .advance-arrow):
(body[dir=rtl] .toolbar.label-only .dashboard-container .advance-arrow):
* UserInterface/Views/DebuggerDashboardView.css:
(.toolbar .dashboard.debugger):
(body[dir=ltr] .toolbar .dashboard.debugger):
(body[dir=rtl] .toolbar .dashboard.debugger):
(.dashboard.debugger .navigation-bar):
(body[dir=ltr] .dashboard.debugger .navigation-bar):
(body[dir=rtl] .dashboard.debugger .navigation-bar):
(.dashboard.debugger > .location):
(.dashboard.debugger > .location > :first-child):
(body[dir=ltr] .dashboard.debugger > .location > :last-child):
(body[dir=rtl] .dashboard.debugger > .location > :last-child):
(.dashboard.debugger > .location .function-icon):
(body[dir=ltr] .dashboard.debugger > .location .function-icon):
(body[dir=rtl] .dashboard.debugger > .location .function-icon):
(.dashboard.debugger > .location .go-to-link):
2017-04-03 Brian Burg <bburg@apple.com>
Web Inspector: RTL: results in Search navigation sidebar have misplaced highlights
https://bugs.webkit.org/show_bug.cgi?id=170292
Reviewed by Timothy Hatcher.
* UserInterface/Models/SourceCodeSearchMatchObject.js:
(WebInspector.SourceCodeSearchMatchObject.prototype.get className):
* UserInterface/Views/SearchIcons.css:
(.source-code-match .icon):
(.source-code-match-icon .icon): Deleted.
Remove -icon suffix from the class name since the class is attached to a result
and is not specific to the icon displayed within the result <li>.
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
Flip the leading and trailing context in RTL so that the highlight is not overflowed
to the left when too much context is included on the right side. Less context must be
used in RTL because we must not overflow to the right, as it may hide the result. And,
we don't know the exact starting character either as it may be overflowed to the right
as the user resizes the expanded sidebar larger or smaller. So show less context to
be conservative about never overflowing the highlighted result string.
* UserInterface/Views/SearchSidebarPanel.css:
(.sidebar > .panel.navigation.search .item.source-code-match .title):
When in RTL, show source code matches as LTR with text-align to right.
2017-04-03 Devin Rousso <webkit@devinrousso.com>
Web Inspector: clicking on the body of a CSS rule after editing the selector causes the section to disappear
https://bugs.webkit.org/show_bug.cgi?id=169803
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleKeyDown):
(WebInspector.CSSStyleDeclarationSection.prototype._handleBlur):
Keep the section marked as `_editorActive` if the action taken would still place focus
within the section (selector or properties). Doing so will prevent it from being removed.
2017-04-03 Brian Burg <bburg@apple.com>
Web Inspector: RTL: hierarchical path component labels should guess directionality based on content
https://bugs.webkit.org/show_bug.cgi?id=170298
Reviewed by Timothy Hatcher.
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent):
Use dir="auto" since this will properly set 'unicode-bidi:isolate' for form elements too.
This is applied to the title label and to the <select> for the path component.
2017-04-03 Matt Baker <mattbaker@apple.com>
Web Inspector: Show additional pause reason details for DOM "subtree modified" breakpoint
https://bugs.webkit.org/show_bug.cgi?id=169479
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New Pause Reason UI strings.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Include a link for the target node when breaking for subtree modifications.
This is either the parent of a node being inserted, or a node that is
being removed.
2017-04-03 Devin Rousso <webkit@devinrousso.com>
Web Inspector: showing the Find banner doesn't immediately focus it
https://bugs.webkit.org/show_bug.cgi?id=169804
Reviewed by Matt Baker.
* UserInterface/Base/Main.js:
(WebInspector._focusChanged):
Slightly change the logic from <https://webkit.org/b/168119> (r213689) to not prevent a new
selection if the focus change target is an element from WebInspector.startEditing.
2017-04-03 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: Don't store binary frames in memory since they are never shown
https://bugs.webkit.org/show_bug.cgi?id=169649
<rdar://problem/31053069>
Reviewed by Brian Burg.
* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource.prototype.addFrame):
2017-04-03 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Preference for Auto Showing Scope Chain sidebar on pause
https://bugs.webkit.org/show_bug.cgi?id=149487
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.layout):
Add WebInspector.Setting for showing Scope Chain on pause.
* UserInterface/Base/Main.js:
(WebInspector.showDebuggerTab):
(WebInspector._debuggerDidPause):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
Modify parameters to use a dictionary of options instead of just a single value. In doing
so, add support for a value that will show the Scope Chain sidebar.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings):
(.content-view.settings > .header):
Drive-by: add padding to bottom of Settings tab so that additional scroll space is mirrored.
2017-04-03 Brian Burg <bburg@apple.com>
Web Inspector: RTL: layout issues in call frame tree elements and async call stacks
https://bugs.webkit.org/show_bug.cgi?id=170419
Reviewed by Matt Baker.
* UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame .status):
(body[dir=ltr] .tree-outline .item.call-frame .status):
(body[dir=rtl] .tree-outline .item.call-frame .status):
Flip the current call frame indicator and make sure it sticks to the leading edge.
(.tree-outline .item.call-frame.async-boundary):
(body[dir=ltr] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
(body[dir=rtl] .tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
(.tree-outline .item.call-frame.async-boundary .icon):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary .icon):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary .icon):
Flip the icon's padding.
(.tree-outline .item.call-frame.async-boundary::after):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary::after):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary::after):
(.tree-outline .item.call-frame.async-boundary::before):
(body[dir=ltr] .tree-outline .item.call-frame.async-boundary::before):
(body[dir=rtl] .tree-outline .item.call-frame.async-boundary::before):
(.tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary): Deleted.
Fix the leading and trailing horizontal rules so they have correct spacing.
* UserInterface/Views/CallFrameView.css:
(.call-frame .icon): Remove redundant property.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .tree-outline.single-thread):
(body[dir=ltr] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
(body[dir=rtl] .sidebar > .panel.navigation.debugger .tree-outline.single-thread):
Fix the leading unindent for call tree frame elements.
2017-04-03 Matt Baker <mattbaker@apple.com>
Web Inspector: Elements tab: show indicators for hidden DOM breakpoints
https://bugs.webkit.org/show_bug.cgi?id=168761
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New DOM breakpoint content menu item.
* UserInterface/Views/DOMTreeContentView.css:
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree):
(.content-view.dom-tree .tree-outline.dom li.expanded .status-image.breakpoint.subtree):
New styles for collapsed breakpoint marker.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.set breakpointStatus):
If the status change indicates the only breakpoint was added or removed,
update subtree breakpoint counts on the element's parent chain.
(WebInspector.DOMTreeElement.prototype.revealAndHighlight):
Reveal the tree element, and add a highlighted line animation
identical to the one used used by TextEditor.
(WebInspector.DOMTreeElement.prototype.subtreeBreakpointCountDidChange):
(WebInspector.DOMTreeElement.prototype.updateSelectionArea):
Selection area should be updated when animating the element highlight.
(WebInspector.DOMTreeElement.prototype.onreveal):
Animate highlight if needed.
(WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
(WebInspector.DOMTreeElement.prototype._statusImageClicked):
Do nothing when clicking the collapsed breakpoint marker.
(WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
Add "Reveal Breakpoint" menu item. Reveals the first descendant
with at least one breakpoint.
(WebInspector.DOMTreeElement.prototype._highlightAnimationEnd):
* UserInterface/Views/DOMTreeOutline.css:
(@keyframes dom-tree-outline-highlight-fadeout):
(.highlight .selection-area):
Styles for highlight fade animation.
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.selfOrDescendant):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype.selfOrDescendant):
Find a node matching a predicate.
2017-04-03 Matt Baker <mattbaker@apple.com>
Web Inspector: DetailsSection should hide header "options" when collapsed
https://bugs.webkit.org/show_bug.cgi?id=170029
Reviewed by Timothy Hatcher.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners.collapsed > .header > .filter): Deleted.
DetailsSection is responsible for hiding options when collapsed.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.paused-reason.collapsed > .header > .options):
* UserInterface/Views/DetailsSection.css:
(body[dir=ltr] .details-section > .header > .options,):
(body[dir=ltr] .details-section > .header::before,):
(.details-section.collapsed > .header > .options):
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow),): Deleted.
(.details-section.collapsed > .header > label): Deleted.
Removed unnecessary rules. The "options" class covers these cases.
* UserInterface/Views/DetailsSection.js:
(WebInspector.DetailsSection.prototype.get titleElement):
(WebInspector.DetailsSection.prototype.set titleElement):
Added title element customization so that the hack used by ProbeSetDetailsSection
to get a link into the title can be removed. Yuck!
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection):
(WebInspector.ProbeSetDetailsSection.prototype._updateLinkElement):
Use the new DetailsSection title element setter.
* UserInterface/Views/VisualStyleDetailsPanel.css:
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .options):
(.sidebar > .panel.details.css-style .visual > .details-section .details-section > .header > .visual-style-section-clear): Deleted.
(.sidebar > .panel.details.css-style .visual > .details-section .details-section.collapsed > .header > .visual-style-section-clear,): Deleted.
Remove the "visual-style-section-clear" class, as it's no longer needed.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection):
2017-04-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "Space" is not localizable in Timelines record button tooltips
https://bugs.webkit.org/show_bug.cgi?id=170420
<rdar://problem/30871371>
Reviewed by Timothy Hatcher.
* UserInterface/Base/LoadLocalizedStrings.js:
(WebInspector.unlocalizedString):
(WebInspector.UIString):
* UserInterface/Base/Main.js:
Move UIString / unlocalizedString to LoadLocalizedString.js.
They may be needed before Main.js has introduced it.
* UserInterface/Test/Test.js:
Provide a default implementaiton of unlocalizedString.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/KeyboardShortcut.js:
Most keys use a symbol to represent the key. "Space" was the one
exception, so use a localized string.
2017-04-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tooltip for close tab button should match Safari
https://bugs.webkit.org/show_bug.cgi?id=170417
<rdar://problem/31378423>
Reviewed by Matt Baker.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/GeneralTabBarItem.js:
(WebInspector.GeneralTabBarItem):
Updated tooltip to match Safari's most descriptive tooltip.
2017-04-03 Devin Rousso <webkit@devinrousso.com>
REGRESSION (r214354): Web Inspector: WebSocket connection icon obscures close content view icon
https://bugs.webkit.org/show_bug.cgi?id=170104
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceTreeElement.css:
(.item.resource.resource-type-websocket .status > .ready-state):
(.item.resource.resource-type-websocket:not(.selected) .status .ready-state.open):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.open):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.open):
(.item.resource.resource-type-websocket:not(.selected) .status .ready-state.connecting):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .ready-state.connecting):
(.item.resource.resource-type-websocket .status > div): Deleted.
(.item.resource.resource-type-websocket:not(.selected) .status .open): Deleted.
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .open): Deleted.
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .open): Deleted.
(.item.resource.resource-type-websocket:not(.selected) .status .connecting): Deleted.
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .connecting): Deleted.
* UserInterface/Views/WebSocketResourceTreeElement.js:
(WebInspector.WebSocketResourceTreeElement.prototype._updateConnectionStatus):
Apply an additional CSS class to the connection indicator element so that the styles can be
applied more specifically to just that element.
2017-04-01 Jon Lee <jonlee@apple.com>
Add missing text styles
https://bugs.webkit.org/show_bug.cgi?id=170295
rdar://problem/30219503
Reviewed by Dean Jackson.
* UserInterface/Models/CSSKeywordCompletions.js: Update keyword completions
2017-04-01 Dan Bernstein <mitz@apple.com>
Localizable strings files are out of date
https://bugs.webkit.org/show_bug.cgi?id=170383
Reviewed by Tim Horton.
Ran update-webkit-localizable-strings.
* Localizations/en.lproj/localizedStrings.js:
2017-03-30 Matt Baker <mattbaker@apple.com>
Web Inspector: Styles sidebar warning icon appears inside property value text
https://bugs.webkit.org/show_bug.cgi?id=170281
Reviewed by Timothy Hatcher.
Style rule warning icon should always come before the property name,
regardless of which property part (name/value) the error is for. This
information is conveyed by the red strikethrough, which is applied to
the property name, value, or both.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2017-03-29 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: Messages log should remain being scrolled to the bottom when a new message is added
https://bugs.webkit.org/show_bug.cgi?id=170090
Reviewed by Matt Baker.
Adding many Web Socket messages quickly can create a performance bottleneck. Batch addition of DataGrid nodes
using requestAnimationFrame, and scroll to the bottom of the DataGrid at most once per a batch update.
* UserInterface/Views/WebSocketContentView.js:
(WebInspector.WebSocketContentView):
(WebInspector.WebSocketContentView.prototype.shown):
(WebInspector.WebSocketContentView.prototype.hidden):
(WebInspector.WebSocketContentView.prototype._updateFramesSoon):
Batch WebSocketContentView DOM modifications using requestAnimationFrame.
(WebInspector.WebSocketContentView.prototype._updateFrames):
(WebInspector.WebSocketContentView.prototype._addFrame):
(WebInspector.WebSocketContentView.prototype.addFrame): Deleted.
Make addFrame method private since it isn't used anywhere outside of this class.
(WebInspector.WebSocketContentView.prototype._updateState): Deleted.
Make _updateState a part of _updateFramesSoon.
2017-03-29 Sam Brodkin <isam@apple.com>
Web Inspector: Network tab content view is blank after reload
https://bugs.webkit.org/show_bug.cgi?id=168029
Reviewed by Brian Burg.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
showDefaultContentView() which shows networkGridView in the contentView was not being called
when the NetworkSidebarPanel was not visible. Removing the if statement always shows the
networkGridView which fixes the bug. This wouldn't be easy to regression test.
2017-03-28 Brian Burg <bburg@apple.com>
Web Inspector: RTL: keyboard shortcuts with directionality need to be flipped (forward/back, etc)
https://bugs.webkit.org/show_bug.cgi?id=165761
Reviewed by Matt Baker.
Original patch by Devin Rousso.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
Flip the functionality of keyboard shortcuts when in RTL so that the action of
pressing the left or right arrows/curly braces matches what happens when the
corresponding left or right buttons are clicked.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._keyDown):
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._keyDown):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline.prototype._treeKeyDown):
Flip the Left and Right keyboard shortcuts to expand/collapse the selected item when in RTL.
2017-03-28 Brian Burg <bburg@apple.com>
Web Inspector: Add "Disable Caches" option that only applies to the inspected page while Web Inspector is open
https://bugs.webkit.org/show_bug.cgi?id=169865
<rdar://problem/31250573>
Reviewed by Joseph Pecoraro.
Hook up a button in the Network tab to WebCore::Page's resourceCachingDisabled flag.
If it is active, resource loads are subject to a cache policy that never uses a cached response.
* Localizations/en.lproj/localizedStrings.js:
Add localized strings.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Add a setting for whether to disable resource caching and inform the backend
of our preference. If someone changes the setting, tell the backend again.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.get navigationItems):
(WebInspector.NetworkGridContentView.prototype._resourceCachingDisabledSettingChanged):
(WebInspector.NetworkGridContentView.prototype._toggleDisableResourceCache):
Add a new activatable navigation item that toggles disableResourceCaching for the inspected page.
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-10.3.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
Update legacy backend commands to remove the old/broken Network.setCacheDisabled command.
2017-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Inspecting a Main Resource that is JS/JSON does not format / syntax highlight it properly
https://bugs.webkit.org/show_bug.cgi?id=166862
<rdar://problem/29835977>
Reviewed by Brian Burg.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.get syntheticMIMEType):
Don't override the mime type for Document resources. They should always
have a mime type and we should use whatever it is.
2017-03-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unable to Format JSON Request Data
https://bugs.webkit.org/show_bug.cgi?id=170189
Reviewed by Matt Baker.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
When we are viewing request data we are looking at a TextResourceContentView
which has a TextEditor without a delegate. In these cases we can just assume
a JavaScript Program. In the majority of cases this will typically be JSON
data, and either Program or Module will highlight and format as expected.
2017-03-27 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Option-clicking the close tab button should close all other tabs
https://bugs.webkit.org/show_bug.cgi?id=169046
Reviewed by Matt Baker.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.prototype._handleClick):
2017-03-27 Devin Rousso <webkit@devinrousso.com>
Web Inspector: The inspector sidebar has weird sub-column sizing issues
https://bugs.webkit.org/show_bug.cgi?id=161966
Reviewed by Joseph Pecoraro.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.resizerDragEnded):
(WebInspector.Sidebar.prototype._recalculateWidth):
Ensure that the selected sidebar panel is notified of the size change (sizeDidChange) when
the resizer drag ends.
* UserInterface/Views/DetailsSectionDataGridRow.js:
(WebInspector.DetailsSectionDataGridRow.prototype.sizeDidChange):
* UserInterface/Views/ProbeSetDetailsSection.js:
(WebInspector.ProbeSetDetailsSection.prototype.sizeDidChange):
Add/update the sizeDidChange protected function.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.initialLayout):
(WebInspector.ComputedStyleDetailsPanel.prototype.sizeDidChange):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.sizeDidChange):
* UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
(WebInspector.LayerTreeDetailsSidebarPanel.prototype.sizeDidChange):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype.sizeDidChange):
* UserInterface/Views/ProbeDetailsSidebarPanel.js:
(WebInspector.ProbeDetailsSidebarPanel.prototype.sizeDidChange):
Update the contained DataGrid elements whenever the sidebar size changes so that the resizer
elements are positioned correctly.
* UserInterface/Views/View.js:
(WebInspector.View.prototype.updateLayoutIfNeeded):
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.updateLayoutIfNeeded):
Ensure the layoutReason is also propagated.
2017-03-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Resource Details Sidebar displays previous image metrics when viewing resource where content load failed
https://bugs.webkit.org/show_bug.cgi?id=170065
<rdar://problem/27081591>
Reviewed by Matt Baker.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.prototype.getImageSize.imageDidLoad):
(WebInspector.Resource.prototype.getImageSize.requestContentFailure):
(WebInspector.Resource.prototype.getImageSize):
If the requestContent failed, return a null image size.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection.hideImageSection):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshImageSizeSection):
If the callback is called with a null size, hide the image size section.
2017-03-24 Brian Burg <bburg@apple.com>
Web Inspector: RTL: number scripts are used inconsistently throughout the UI
https://bugs.webkit.org/show_bug.cgi?id=168290
Reviewed by Joseph Pecoraro.
Original patch by Devin Rousso.
* Localizations/en.lproj/localizedStrings.js: Add new string for FPS bars.
* UserInterface/Base/Utilities.js:
(value.d):
(value):
Localize %d formatted values by default. If that's not desired, then you need to stringify
the number outside of String.format and Number.abbreviate and pass it as %s instead.
Also add a global variable for zwsp (zero-width space) and use it in DataGridNode.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._renderRepeatCount): Abbreviate the repeat count,
and cause it to be localized.
* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode.prototype.createCellContent):
If we don't know anything about a cell's data other than that it's a number,
run the number through toLocaleString().
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
Don't localize @%d tags for snapshot objects since this is not done elsewhere in the UI.
* UserInterface/Views/IndexedDatabaseDetailsSidebarPanel.js: Localize integer version number.
(WebInspector.IndexedDatabaseDetailsSidebarPanel.prototype.layout):
* UserInterface/Views/MemoryTimelineView.js:
(WebInspector.MemoryTimelineView.prototype._updateMaxComparisonLegend): Use Number.percentageString().
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateDividers):
Localize "%d fps" markers.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._viewModeDidChange):
Localize frame label numbers.
2017-03-24 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Adding a WebSocket message may change the currently selected resource
https://bugs.webkit.org/show_bug.cgi?id=170036
<rdar://problem/31231463>
Reviewed by Joseph Pecoraro.
Calling increaseSize on a resource may cause a WebInspector.TimelineDataGrid#TimelineDataGrid#_refreshDirtyDataGridNodes call.
Make sure _refreshDirtyDataGridNodes preserves selection of a treeElement.
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
Re-attaching treeElement causes it to lose selection. Select it again after re-attaching.
2017-03-24 Devin Rousso <webkit@devinrousso.com>
Web Inspector: add context menu item to log content of WebSocket frame
https://bugs.webkit.org/show_bug.cgi?id=169945
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/WebSocketContentView.js:
(WebInspector.WebSocketContentView):
(WebInspector.WebSocketContentView.prototype.addFrame):
(WebInspector.WebSocketContentView.prototype._addRow):
Rework the way CSS classes are applied so the isOutgoing and isText flags can also be passed
to the WebSocketDataGridNode. This is necessary because a non-text frame shouldn't be able
to be logged to the console.
* UserInterface/Views/WebSocketDataGridNode.js:
(WebInspector.WebSocketDataGridNode.prototype.appendContextMenuItems):
2017-03-24 Devin Rousso <webkit@devinrousso.com>
Web Inspector: allow users to click links in inline/user-agent styles
https://bugs.webkit.org/show_bug.cgi?id=170054
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.set style):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._updateJumpToSymbolTrackingMode):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
(WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerNewHighlightCandidate):
Always enable the token tracking controller, but only act on hovered/clicked token if it is
a link or the owner style declaration has a source code location (for jumping to the Resource).
2017-03-24 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Indicate whether a WebSocket connection is open or close
https://bugs.webkit.org/show_bug.cgi?id=168948
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
Added WebSocketResourceTreeElement.js and SpanningDataGridNode.js.
* UserInterface/Views/WebSocketContentView.js:
(WebInspector.WebSocketContentView):
(WebInspector.WebSocketContentView.prototype.shown):
(WebInspector.WebSocketContentView.prototype.hidden):
(WebInspector.WebSocketContentView.prototype._updateState):
Listen to changes in the readyState and add a SpanningDataGridNode when the current state
becomes Closed.
* UserInterface/Views/WebSocketResourceTreeElement.js: Added.
(WebInspector.WebSocketResourceTreeElement.prototype.onattach):
(WebInspector.WebSocketResourceTreeElement.prototype.ondetach):
(WebInspector.WebSocketResourceTreeElement.prototype._updateConnectionStatus):
Listen to changes in the readyState and add/remove the status element depending on the
current state:
- Closed: show no status indicator
- Connecting: show a small circle with a yellow color
- Open: show a small circle with a green color
* UserInterface/Views/ResourceTreeElement.css:
(.item.resource.resource-type-websocket .status > div):
(.item.resource.resource-type-websocket:not(.selected) .status .open):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .open):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .open):
(.item.resource.resource-type-websocket:not(.selected) .status .connecting):
(.tree-outline:not(:focus, .force-focus) .item.resource.resource-type-websocket.selected .status .connecting):
(body:matches(.window-inactive, .window-docked-inactive) .item.resource.resource-type-websocket.selected .status .connecting):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
Use WebSocketResourceTreeElement as the constructor for WebSocket resources.
* UserInterface/Views/SpanningDataGridNode.js: Added.
(WebInspector.SpanningDataGridNode.prototype.createCells):
Creates a single cell that spans all the columns (via CSS colspan) of the parent DataGrid.
* UserInterface/Views/DataGrid.css:
(.data-grid td.spanning):
Center content of spanning nodes and prevent user interaction.
* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode.prototype.createCell):
Add additional checks so that a DataGridNode can be created with a column identifier that is
not in the DataGrid. This is used by SpanningGridDataNode, as it shouldn't match one single
column in the DataGrid since it spans them all.
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.ondetach):
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.ondetach):
* UserInterface/Views/DOMBreakpointTreeElement.js:
(WebInspector.DOMBreakpointTreeElement.prototype.ondetach):
* UserInterface/Views/XHRBreakpointTreeElement.js:
(WebInspector.XHRBreakpointTreeElement.prototype.ondetach):
Add ondetach function (with super calls) for future use.
2017-03-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cache type is not styled correctly in Timelines tab
https://bugs.webkit.org/show_bug.cgi?id=170032
Reviewed by Matt Baker.
* UserInterface/Views/NetworkGridContentView.css:
(.content-view:matches(.network, .network-grid) > .data-grid .cache-type):
(.content-view:matches(.network, .network-grid) > .data-grid:matches(:focus, .force-focus) tr.selected .cache-type):
(.content-view.network-grid > .data-grid .cache-type): Deleted.
(.content-view.network-grid > .data-grid:matches(:focus, .force-focus) tr.selected .cache-type): Deleted.
The different network grids have different class names. Handle both.
2017-03-23 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Editing local storage keys/values starts with truncated strings
https://bugs.webkit.org/show_bug.cgi?id=169896
Reviewed by Brian Burg.
* UserInterface/Views/DataGrid.css:
(.data-grid td.editing > div):
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._editingCancelled):
div.cell-content is removed because the <td> itself is contenteditable (using -webkit-user-modify:read-write-plaintext-only),
not the inner div.cell-content. Re-create div.cell-content after commiting (by pressing Enter) or canceling (by pressing Esc)
since it may get removed while editing.
2017-03-22 Matt Baker <mattbaker@apple.com>
Web Inspector: Clicking DOM breakpoint marker should enable/disable breakpoints
https://bugs.webkit.org/show_bug.cgi?id=169856
<rdar://problem/31133090>
Reviewed by Joseph Pecoraro.
Clicking DOM breakpoint marker should enable/disable breakpoints,
matching the behavior of the marker's context menu:
- If one or more breakpoints are disabled, click enables all
- If all breakpoints are enabled, click disables all
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
(WebInspector.DOMTreeElement.prototype._statusImageClicked):
2017-03-20 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: minor layout issues in Breakpoint Editor popover
https://bugs.webkit.org/show_bug.cgi?id=169765
Reviewed by Brian Burg.
* UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
Fix typo.
* UserInterface/Views/BreakpointActionView.css:
(body[dir=ltr] .breakpoint-action-button-container):
(body[dir=rtl] .breakpoint-action-button-container):
(:matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
(body[dir=ltr] :matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
(body[dir=rtl] :matches(.breakpoint-action-append-button, .breakpoint-action-remove-button)):
(.breakpoint-action-block-body > .description):
(body[dir=ltr] .breakpoint-action-block-body > .description):
(body[dir=rtl] .breakpoint-action-block-body > .description):
(.breakpoint-action-block-body > input):
(.breakpoint-action-button-container): Deleted.
(.breakpoint-action-append-button, .breakpoint-action-remove-button): Deleted.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
Manually apply `dir="ltr"` to the description element to force proper rendering.
* UserInterface/Views/BreakpointPopoverController.css:
(.popover .edit-breakpoint-popover-content):
(.popover .edit-breakpoint-popover-content > table > tr > th):
(#edit-breakpoint-popover-ignore):
(body[dir=ltr] :matches(#edit-breakpoint-popover-ignore, #edit-breakpoint-popover-auto-continue)):
(body[dir=rtl] :matches(#edit-breakpoint-popover-ignore, #edit-breakpoint-popover-auto-continue)):
(#edit-breakpoint-popoover-auto-continue): Deleted.
2017-03-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Icon next to "An error occurred..." message changes size when Inspector window is resized
https://bugs.webkit.org/show_bug.cgi?id=169901
Reviewed by Brian Burg.
* UserInterface/Views/Main.css:
(.message-text-view.error::before):
2017-03-20 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Clicking on Clear Network Items icon throws an exception if timing popover is visible
https://bugs.webkit.org/show_bug.cgi?id=169852
<rdar://problem/31132652>
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
(WebInspector.ResourceTimelineDataGridNode):
2017-03-20 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r187873): Web Inspector: When resizing, prevent DataGrid columns from collapsing entirely
https://bugs.webkit.org/show_bug.cgi?id=169899
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype.resizerDragging):
leftMinimum and rightMaximum variables were always NaN because this.ColumnResizePadding is undefined.
2017-03-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Pseudo-class markers overlap DOM breakpoints and disclosure triangle
https://bugs.webkit.org/show_bug.cgi?id=169850
<rdar://problem/31132335>
Reviewed by Joseph Pecoraro.
DOMTreeContentView should always have at least 7px of gutter space to
accomodate pseudo-class markers. When DOM breakpoints are visible the
gutter size is increased so breakpoints and markers do not overlap.
* UserInterface/Views/DOMTreeContentView.css:
(.content-view.dom-tree .tree-outline.dom):
(.content-view.dom-tree.show-gutter .tree-outline.dom):
(body[dir=ltr] .content-view.dom-tree .tree-outline.dom):
(body[dir=rtl] .content-view.dom-tree .tree-outline.dom):
(body[dir=ltr] .content-view.dom-tree.show-gutter .tree-outline.dom): Deleted.
(body[dir=rtl] .content-view.dom-tree.show-gutter .tree-outline.dom): Deleted.
* UserInterface/Views/DOMTreeOutline.css:
(.content-view.dom-tree.show-gutter .tree-outline.dom):
Change pseudo-class marker indent when showing DOM breakpoint gutter.
(body[dir=ltr] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
Drive-by fix: copy paste error.
2017-03-19 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r212910): Active call frame status icon has incorrect left margin
https://bugs.webkit.org/show_bug.cgi?id=169862
Reviewed by Brian Burg.
* UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame .status):
(body[dir=ltr] .tree-outline .item.call-frame .status):
(body[dir=rtl] .tree-outline .item.call-frame .status):
2017-03-18 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Empty attribute added to a DOM tree outline element should not add whitespace within the tag
https://bugs.webkit.org/show_bug.cgi?id=139623
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._attributeEditingCommitted):
If the `newText` after editing has no content, remove the element for that attribute.
2017-03-18 Devin Rousso <webkit@devinrousso.com>
Web Inspector: add keyboard shortcut to clear timeline records
https://bugs.webkit.org/show_bug.cgi?id=132485
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
(WebInspector.TimelineRecordingContentView.prototype.handleClearShortcut):
2017-03-17 Devin Rousso <webkit@devinrousso.com>
Web Inspector: wrong filename when saving resource from ResourceImageContentView
https://bugs.webkit.org/show_bug.cgi?id=54454
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype.get supportsSave):
(WebInspector.ResourceContentView.prototype.get saveData):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.get supportsSave): Deleted.
Add save data getter to the parent class, so that both Images and Fonts can be saved.
* UserInterface/Views/Resource.js:
(WebInspector.Resource.prototype.canRequestContent):
Drive-by: remove unused function.
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: memory category timelines would look better with ruler tick-aligned guides
https://bugs.webkit.org/show_bug.cgi?id=158100
Reviewed by Joseph Pecoraro.
* UserInterface/Views/MemoryTimelineView.css:
(.timeline-view.memory > .content > .details):
(.timeline-view.memory > .content > .details > .timeline-ruler):
(body[dir=ltr] .timeline-view.memory > .content > .details > .timeline-ruler):
(body[dir=rtl] .timeline-view.memory > .content > .details > .timeline-ruler):
Make the TimelineRuler absolutely positioned so it can use the full height of the view,
providing enough space for the markers to be visible.
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Console Evaluation links in the Console should not show normally
https://bugs.webkit.org/show_bug.cgi?id=157483
Reviewed by Matt Baker.
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame):
(WebInspector.CallFrame.prototype.get isConsoleEvaluation):
(WebInspector.CallFrame.fromDebuggerPayload):
(WebInspector.CallFrame.fromPayload):
Move console evaluation check to the constructor for consistency.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
* UserInterface/Views/StackTraceView.js:
(WebInspector.StackTraceView):
Only add CallFrameView elements if the corresponding CallFame is not a console evaluation.
2017-03-16 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r213691): Saving DOM breakpoints broken after refactoring
https://bugs.webkit.org/show_bug.cgi?id=169779
Reviewed by Joseph Pecoraro.
Use correct method: _saveBreakpoints -> _saveDOMBreakpoints.
* UserInterface/Controllers/DOMDebuggerManager.js:
(WebInspector.DOMDebuggerManager.prototype.addDOMBreakpoint):
Remove check before saving to be consistent with similar code in
DebuggerManager and DOMDebuggerManager.
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: add "Save Selected" context menu item to Console
https://bugs.webkit.org/show_bug.cgi?id=151837
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.saveDataToFile):
Allow data to be saved without a provided URL. It will default to localized "Untitled".
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype._handleContextMenuEvent):
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: selected frame indicator is not positioned correctly
https://bugs.webkit.org/show_bug.cgi?id=169763
Reviewed by Matt Baker.
* UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._updateFrameMarker):
(WebInspector.RenderingFrameTimelineOverviewGraph.prototype._mouseClicked):
Treat the current mouse position (event.pageX) as a negative value when in RTL, meaning that
the delta movement from the starting position is flipped.
* UserInterface/Views/TimelineRuler.css:
(body[dir=ltr] .timeline-ruler > .header > .divider,):
(body[dir=rtl] .timeline-ruler > .header > .divider,):
(.timeline-ruler > .header > .divider):
(.timeline-ruler > .header > .divider > .label):
(body[dir=ltr] .timeline-ruler > .header > .divider > .label):
(body[dir=rtl] .timeline-ruler > .header > .divider > .label):
(.timeline-ruler > .markers > .divider):
(.timeline-ruler > .markers > .marker):
(body[dir=ltr] .timeline-ruler > .markers > .marker):
(body[dir=rtl] .timeline-ruler > .markers > .marker):
(.timeline-ruler > .markers > .marker::before):
(body[dir=ltr] .timeline-ruler > .markers > .marker::before):
(body[dir=rtl] .timeline-ruler > .markers > .marker::before):
(body[dir=ltr] .timeline-ruler > .markers > .marker.current-time):
(body[dir=rtl] .timeline-ruler > .markers > .marker.current-time):
(.timeline-ruler > .markers > .marker.current-time::before):
(.timeline-ruler > .markers > .marker.current-time): Deleted.
(.timeline-ruler > .selection-handle):
(body[dir=ltr] .timeline-ruler > .selection-handle.left):
(body[dir=rtl] .timeline-ruler > .selection-handle.left):
(body[dir=ltr] .timeline-ruler > .selection-handle.right):
(body[dir=rtl] .timeline-ruler > .selection-handle.right):
Drive-by: add CSS variable for clarity.
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: filter mode icon in Debugger sidebar is misaligned
https://bugs.webkit.org/show_bug.cgi?id=169766
Reviewed by Matt Baker.
* UserInterface/Views/FilterBar.css:
(.filter-bar > .navigation-bar > .item):
(body[dir=ltr] .filter-bar > .navigation-bar > .item):
(body[dir=rtl] .filter-bar > .navigation-bar > .item):
2017-03-16 Matt Baker <mattbaker@apple.com>
Web Inspector: Refactoring: remove DebuggerTreeElement class
https://bugs.webkit.org/show_bug.cgi?id=169697
Reviewed by Devin Rousso.
Remove unnecessary class DebuggerTreeElement from TreeElement class hierarchy.
The `sourceCodeLocation` property on IssueMessage and Breakpoint (the debugger
objects) can be tested for generically using TreeElement.prototype.representedObject.
* UserInterface/Main.html:
Remove file.
* UserInterface/Views/BreakpointTreeElement.js:
* UserInterface/Views/IssueTreeElement.js:
Change base class to GeneralTreeElement.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTreeElements):
(WebInspector.DebuggerSidebarPanel.prototype._addIssue):
(WebInspector.DebuggerSidebarPanel.prototype._compareDebuggerTreeElements): Deleted.
Renamed to just "_compareTreeElements".
* UserInterface/Views/DebuggerTreeElement.js: Removed.
2017-03-16 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: goto arrow for source locations is pointing wrong way in Timeline data grids
https://bugs.webkit.org/show_bug.cgi?id=169764
Reviewed by Matt Baker.
* UserInterface/Views/DataGrid.css:
(body[dir=rtl] .data-grid td .go-to-arrow):
2017-03-16 Brian Burg <bburg@apple.com>
Web Inspector: RTL: add FindBanner support for RTL layout
https://bugs.webkit.org/show_bug.cgi?id=168723
Reviewed by Timothy Hatcher.
Due to the large number of CSS tricks used by this widget, adding RTL
support involves changing a large number of rules. The important parts:
- Use '.segmented.{previous,next}-result' instead of '.segmented.
{left,right}', this makes the style rules way less confusing for RTL.
- Flip icons so icons look like "< >" but actions are reversed.
- Get rid of the weird expanding button divider. This is impossible
to mirror with the existing adjacent sibling combinator, and it does
not match the system appearance. Just replace the mini-divider with a
full divider and remove related dynamic rules that trigger on :active.
- Always keep the button divider between next/previous on the rightmost
button, to avoid subtle differences between LTR and RTL.
- Fix some mistakes where we weren't using --border-color and also
didn't adjust the handcoded border color for the inactive window case.
* UserInterface/Views/FindBanner.css:
(.find-banner):
(body[dir=ltr] .find-banner > :first-child,):
(body[dir=ltr] .find-banner > :last-child,):
(.find-banner > input[type="search"]):
(body[dir=ltr] .find-banner > input[type="search"]):
(body[dir=rtl] .find-banner > input[type="search"]):
(.find-banner > button:active:not(:disabled)):
(.find-banner > button.segmented):
(.find-banner > button.segmented.previous-result):
(body[dir=ltr] .find-banner > button.segmented.previous-result):
(body[dir=rtl] .find-banner > button.segmented.previous-result):
(body[dir=ltr] .find-banner > button.segmented.previous-result > .glyph):
(body[dir=rtl] .find-banner > button.segmented.previous-result > .glyph):
(body[dir=ltr] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph):
(body[dir=rtl] .find-banner > button.segmented.previous-result:active:not(:disabled) > .glyph):
(.find-banner > button.segmented.next-result):
(body[dir=ltr] .find-banner > button.segmented.next-result):
(body[dir=rtl] .find-banner > button.segmented.next-result):
(body[dir=ltr] .find-banner > button.segmented.next-result > .glyph):
(body[dir=rtl] .find-banner > button.segmented.next-result > .glyph):
(body[dir=ltr] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph):
(body[dir=rtl] .find-banner > button.segmented.next-result:active:not(:disabled) > .glyph):
(.find-banner.console-find-banner > input[type="search"]):
(body[dir=ltr] .find-banner.console-find-banner > input[type="search"]):
(body[dir=rtl] .find-banner.console-find-banner > input[type="search"]):
(body[dir=ltr] .find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container):
(body[dir=rtl] .find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container):
(.find-banner > :first-child): Deleted.
(.find-banner > :last-child): Deleted.
(.find-banner > button.segmented.left): Deleted.
(.find-banner > button:not(:active).segmented.right:before): Deleted.
(.find-banner > button.segmented.left:active + button.segmented.right,): Deleted.
(.find-banner > button.segmented.left:active + button.segmented.right:before): Deleted.
(.find-banner > button.segmented.left > .glyph): Deleted.
(.find-banner > button.segmented.left:active:not(:disabled) > .glyph): Deleted.
(.find-banner > button.segmented.right): Deleted.
(.find-banner > button.segmented.right > .glyph): Deleted.
(.find-banner > button.segmented.right:active:not(:disabled) > .glyph): Deleted.
(.find-banner.console-find-banner > input[type="search"]::-webkit-textfield-decoration-container): Deleted.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner):
Change left and right to logical names for the buttons, and inline
some style classes with single uses.
2017-03-15 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Selecting text in the console does not do what I expect
https://bugs.webkit.org/show_bug.cgi?id=169570
Reviewed by Matt Baker.
* UserInterface/Views/ConsoleMessageView.css:
(.console-message-text > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)):
(.console-message .console-message-location):
(.console-message-location.call-frame):
Prevent text selection on anything other than the message text. The other information that
is not selectable can still be copied by selecting the message itself and copying.
2017-03-15 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: Update Arrow Up icon to fit in with the rest of our iconography
https://bugs.webkit.org/show_bug.cgi?id=169696
<rdar://problem/31073748>
Reviewed by Matt Baker.
* UserInterface/Images/ArrowUp.svg:
* UserInterface/Images/gtk/ArrowUp.svg:
2017-03-15 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Add icons for SVG Image cluster path components
https://bugs.webkit.org/show_bug.cgi?id=169687
Reviewed by Joseph Pecoraro.
* UserInterface/Images/Image.svg: Added.
* UserInterface/Images/Source.svg: Added.
* UserInterface/Images/gtk/Image.svg: Added.
* UserInterface/Images/gtk/Source.svg: Added.
* UserInterface/Views/PathComponentIcons.css:
(.image-icon .icon):
(.source-icon .icon):
* UserInterface/Views/SVGImageResourceClusterContentView.js:
(WebInspector.SVGImageResourceClusterContentView):
2017-03-15 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: flip Memory timelines
https://bugs.webkit.org/show_bug.cgi?id=169694
Reviewed by Brian Burg.
* UserInterface/Views/MemoryCategoryView.css:
(body[dir=rtl] .memory-category-view > .graph):
2017-03-15 Joseph Pecoraro <pecoraro@apple.com>
JSContext Inspector: NetworkAgent may be unavailable
https://bugs.webkit.org/show_bug.cgi?id=169691
Reviewed by Brian Burg.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
Check that NetworkAgent even exists. An augmented JSContext may have Resources
without having a NetworkAgent.
2017-03-15 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r213622): Web Inspector: DataGrid headers should NOT be centered
https://bugs.webkit.org/show_bug.cgi?id=169645
<rdar://problem/31051520>
Reviewed by Matt Baker.
* UserInterface/Views/DataGrid.css:
(.data-grid th):
(body[dir=ltr] .data-grid th):
(body[dir=rtl] .data-grid th):
2017-03-15 Devin Rousso <webkit@devinrousso.com>
Web Inspector: SVG image content view should toggle between image and source
https://bugs.webkit.org/show_bug.cgi?id=16079
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.get responseContentView):
Show the SVG cluster content view if the MIME type matches an SVG file.
* UserInterface/Views/SVGImageResourceClusterContentView.js: Added.
(WebInspector.SVGImageResourceClusterContentView):
(WebInspector.SVGImageResourceClusterContentView.prototype.get resource):
(WebInspector.SVGImageResourceClusterContentView.prototype.get selectionPathComponents):
(WebInspector.SVGImageResourceClusterContentView.prototype.shown):
(WebInspector.SVGImageResourceClusterContentView.prototype.closed):
(WebInspector.SVGImageResourceClusterContentView.prototype.saveToCookie):
(WebInspector.SVGImageResourceClusterContentView.prototype.restoreFromCookie):
(WebInspector.SVGImageResourceClusterContentView.prototype._pathComponentForContentView):
(WebInspector.SVGImageResourceClusterContentView.prototype._identifierForContentView):
(WebInspector.SVGImageResourceClusterContentView.prototype._showContentViewForIdentifier):
(WebInspector.SVGImageResourceClusterContentView.prototype._pathComponentSelected):
2017-03-15 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: add support for Timeline ruler selections/movement
https://bugs.webkit.org/show_bug.cgi?id=169588
Reviewed by Matt Baker.
* UserInterface/Views/TimelineOverview.css:
(body[dir=ltr] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right):
(body[dir=rtl] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.left):
(body[dir=ltr] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right):
(body[dir=rtl] .timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.left):
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .selection-handle.right): Deleted.
(.timeline-overview.frames > .timeline-ruler:not(.both-handles-clamped) > .shaded-area.right): Deleted.
Fixes alignment of selection handles when in Frames view.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._handleScrollEvent):
Support horizontal scrolling in timelines by treating the current scroll value as negative
when in RTL, flipping the scroll direction.
* UserInterface/Views/TimelineRuler.css:
(body[dir=ltr] .timeline-ruler > .selection-handle.left):
(body[dir=rtl] .timeline-ruler > .selection-handle.left):
(body[dir=ltr] .timeline-ruler > .selection-handle.right):
(body[dir=rtl] .timeline-ruler > .selection-handle.right):
(body[dir=ltr] .timeline-ruler > .shaded-area.left):
(body[dir=rtl] .timeline-ruler > .shaded-area.left):
(body[dir=ltr] .timeline-ruler > .shaded-area.right):
(body[dir=rtl] .timeline-ruler > .shaded-area.right):
(.timeline-ruler > .selection-handle.left): Deleted.
(.timeline-ruler > .selection-handle.right): Deleted.
(.timeline-ruler > .shaded-area.left): Deleted.
(.timeline-ruler > .shaded-area.right): Deleted.
Flip the position alignment of the selection handles and shaded areas when in RTL.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype._handleMouseDown):
(WebInspector.TimelineRuler.prototype._handleMouseMove):
(WebInspector.TimelineRuler.prototype._handleMouseUp):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseDown):
(WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
Treat the current mouse position (event.pageX) as a negative value when in RTL, meaning that
the delta movement from the starting position is flipped.
2017-03-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: REGRESSION: Elements Tab > Node Details Sidebar > Properties Section is spammed with TypeErrors
https://bugs.webkit.org/show_bug.cgi?id=153911
<rdar://problem/24520098>
Reviewed by Devin Rousso.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved.inspectedPage_node_collectPrototypes):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
Update due to naming conventions for code that evalutes in the inspected page.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.fillSection):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
Create a more complete ObjectTreeView for the different sections.
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
PureAPI behaves the same as ClassAPI and just shows own properties.
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype.showOnlyProperties):
In only properties mode don't show the Prototype expander at the end.
(WebInspector.ObjectTreeView.prototype.setPrototypeNameOverride):
Allow a prototype name override at the top level. This will allow clients
to specify that the object at the top level is a Prototype object, so that
ObjectTreePropertyTreeElements can infer the right NativeFunctionParameter
information knowing that those properties are on a particular prototype.
(WebInspector.ObjectTreeView.prototype.update):
For the PureAPI use getOwnProperties instead of getDisplayableProperties.
This avoids the special handling we have for DOM native properties which
we bubble up to the top as value descriptors even though they are actually
accessor descriptors on prototypes.
(WebInspector.ObjectTreeView.prototype._updateProperties):
Pass the prototype name override onward for object properties.
2017-03-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Exception when fetching computed styles can break future updates of section
https://bugs.webkit.org/show_bug.cgi?id=169638
<rdar://problem/30588688>
Reviewed by Devin Rousso.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh.wrap):
(WebInspector.DOMNodeStyles.prototype.refresh):
Gracefully handle exceptions. If an exception did happen we
would be unable to update these in the future.
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: add support for Memory timeline
https://bugs.webkit.org/show_bug.cgi?id=169584
Reviewed by Brian Burg.
* UserInterface/Views/MemoryCategoryView.css:
(.memory-category-view > .details):
(body[dir=ltr] .memory-category-view > .details):
(body[dir=rtl] .memory-category-view > .details):
* UserInterface/Views/MemoryTimelineOverviewGraph.css:
(.timeline-overview-graph.memory > .legend):
(body[dir=ltr] .timeline-overview-graph.memory > .legend):
(body[dir=rtl] .timeline-overview-graph.memory > .legend):
(.timeline-overview-graph.memory .memory-pressure-event):
(body[dir=ltr] .timeline-overview-graph.memory .memory-pressure-event):
(body[dir=rtl] .timeline-overview-graph.memory .memory-pressure-event):
* UserInterface/Views/MemoryTimelineOverviewGraph.js:
(WebInspector.MemoryTimelineOverviewGraph.prototype.layout):
Rework the calculation for the marker offset to use "right" in RTL.
* UserInterface/Views/MemoryTimelineView.css:
(.timeline-view.memory > .content > .details > .timeline-ruler):
(body[dir=ltr] .timeline-view.memory > .content > .details > .timeline-ruler):
(body[dir=rtl] .timeline-view.memory > .content > .details > .timeline-ruler):
(.timeline-view.memory > .content > .overview > .divider):
(body[dir=ltr] .timeline-view.memory > .content > .overview > .divider):
(body[dir=rtl] .timeline-view.memory > .content > .overview > .divider):
(.timeline-view.memory .legend):
(body[dir=ltr] .timeline-view.memory .legend):
(body[dir=rtl] .timeline-view.memory .legend):
(.timeline-view.memory .legend > .row):
(.timeline-view.memory .legend > .row > .swatch):
(body[dir=ltr] .timeline-view.memory .legend > .row > .swatch):
(body[dir=rtl] .timeline-view.memory .legend > .row > .swatch):
(body[dir=ltr] .timeline-view.memory .legend > .row > :matches(.label, .size)):
(body[dir=rtl] .timeline-view.memory .legend > .row > :matches(.label, .size)):
(.timeline-view.memory .legend > .row > .label):
(.timeline-view.memory .legend > .row > .size):
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: add support for Timeline graphs
https://bugs.webkit.org/show_bug.cgi?id=169585
Reviewed by Brian Burg.
* UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js:
(WebInspector.HeapAllocationsTimelineOverviewGraph.prototype.layout):
Rework the calculation for the icon offset to use "right" in RTL.
* UserInterface/Views/MemoryTimelineOverviewGraph.css:
(body[dir=rtl] .timeline-overview-graph.memory > .stacked-line-chart):
Flip the chart when in RTL.
* UserInterface/Views/TimelineRecordBar.css:
(.timeline-record-bar):
(body[dir=ltr] .timeline-record-bar > .segment.inactive):
(body[dir=rtl] .timeline-record-bar > .segment.inactive):
(body[dir=ltr] .timeline-record-bar.unfinished > .segment):
(body[dir=rtl] .timeline-record-bar.unfinished > .segment):
(body[dir=ltr] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(body[dir=rtl] .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
(.timeline-record-bar > .segment.inactive,): Deleted.
(.timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
(:matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.refresh):
Apply the position updates to "right" in RTL.
* UserInterface/Views/TimelineRecordFrame.js:
(WebInspector.TimelineRecordFrame.prototype.refresh):
Apply the position updates to "right" in RTL.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.layout):
(WebInspector.TimelineRuler.prototype._updatePositionOfElement):
(WebInspector.TimelineRuler.prototype._updateMarkers):
(WebInspector.TimelineRuler.prototype._updateSelection):
Apply the position updates to "right" in RTL.
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: add support for DataGrid disclosure arrows and indentation
https://bugs.webkit.org/show_bug.cgi?id=169582
Reviewed by Brian Burg.
* UserInterface/Views/DataGrid.css:
(body[dir=rtl] .data-grid tr.parent td.disclosure::before):
Flip the image in RTL.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._updateScrollbarPadding):
Rework the padding calculation for the scrollbar offset to use "right" in RTL.
* UserInterface/Views/DataGridNode.js:
(WebInspector.DataGridNode.prototype.get indentPadding):
(WebInspector.DataGridNode.prototype.createCell):
Rework the padding calculation for indenting (as a child) to use "right" in RTL.
(WebInspector.DataGridNode.prototype.isEventWithinDisclosureTriangle):
Calculate the position of the ::before triangle based on the layout direction.
(WebInspector.DataGridNode.prototype.get leftPadding): Deleted.
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: RTL: add support for TimelineOverview sidebar and container layout
https://bugs.webkit.org/show_bug.cgi?id=169583
Reviewed by Brian Burg.
* UserInterface/Views/TimelineOverview.css:
(body[dir=ltr] .timeline-overview > :matches(.navigation-bar.timelines, .tree-outline.timelines)):
(body[dir=rtl] .timeline-overview > :matches(.navigation-bar.timelines, .tree-outline.timelines)):
(body[dir=ltr] .timeline-overview:not(.frames) > :matches(.scroll-container, .timeline-ruler, .graphs-container)):
(body[dir=rtl] .timeline-overview:not(.frames) > :matches(.scroll-container, .timeline-ruler, .graphs-container)):
(.timeline-overview > .navigation-bar.timelines):
(.timeline-overview > .tree-outline.timelines):
(.timeline-overview > .scroll-container):
(.timeline-overview > .timeline-ruler):
(.timeline-overview > .graphs-container):
(.timeline-overview > .scroll-container > .scroll-width-sizer):
(body[dir=ltr] .timeline-overview > .scroll-container > .scroll-width-sizer):
(body[dir=rtl] .timeline-overview > .scroll-container > .scroll-width-sizer):
(.timeline-overview.frames > .graphs-container): Deleted.
2017-03-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: More accurate Resource Timing data in Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=169577
Reviewed by Youenn Fablet.
* UserInterface/Models/ResourceTimingData.js:
(WebInspector.ResourceTimingData.prototype.get requestStart):
(WebInspector.ResourceTimingData.prototype.get responseStart):
Fallback to the startTime if available instead of using the
inaccurate WebContentProcess gathered timestamps.
(WebInspector.ResourceTimingData.prototype.markResponseEndTime):
Verify responseEnd compared to other times we may have.
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Remove unnecessary assert for Number.percentageString
https://bugs.webkit.org/show_bug.cgi?id=169589
Reviewed by Matt Baker.
* UserInterface/Base/Utilities.js:
(Number.percentageString):
2017-03-14 Devin Rousso <webkit@devinrousso.com>
Web Inspector: allow the user to copy locked CSS selectors in Style - Rules
https://bugs.webkit.org/show_bug.cgi?id=169587
Reviewed by Matt Baker.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section:matches(.locked, .selector-locked) > .header > .selector):
2017-03-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: WebSockets: color of outgoing message icon should match text color
https://bugs.webkit.org/show_bug.cgi?id=169512
<rdar://problem/30994284>
Reviewed by Devin Rousso.
Include SVG icon as an inline SVG element to make currentColor work.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Views/WebSocketContentView.css:
(.web-socket.content-view .outgoing .icon): Deleted.
* UserInterface/Views/WebSocketContentView.js:
(WebInspector.WebSocketContentView):
(WebInspector.WebSocketContentView.prototype.addFrame):
(WebInspector.WebSocketContentView.prototype._addRow):
(WebInspector.WebSocketContentView.prototype._timeStringFromTimestamp): Deleted.
* UserInterface/Views/WebSocketDataGridNode.js: Added.
(WebInspector.WebSocketDataGridNode.prototype.createCellContent):
(WebInspector.WebSocketDataGridNode.prototype._timeStringFromTimestamp):
(WebInspector.WebSocketDataGridNode):
2017-03-13 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Event Listeners detail section is unhelpful, default should show listeners by element rather than by event
https://bugs.webkit.org/show_bug.cgi?id=167077
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Views/EventListenerSection.js: Removed.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.eventListeners): Renamed to getEventListeners.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.css: Added.
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(body[dir=ltr] .sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(body[dir=rtl] .sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:active):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners.collapsed > .header > .filter):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter > select):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.createOption):
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.createEventListenerSection):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByEvent):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.eventListenersCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners):
Add a filter to the Event Listeners section that changes the way in which event listeners
are grouped. Currently supports two methods:
- Group by Event
- Group by Node
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup):
Add ability to display the event type.
* UserInterface/Views/DetailsSection.css:
(.details-section):
Drive-by fix: CSS variable was named incorrectly.
2017-03-13 Devin Rousso <webkit@devinrousso.com>
Web Inspector: Event Listeners section is missing 'once', 'passive' event listener flags
https://bugs.webkit.org/show_bug.cgi?id=167080
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup):
(WebInspector.EventListenerSectionGroup.prototype._type): Deleted.
2017-03-11 Matt Baker <mattbaker@apple.com>
Web Inspector: Add "goto arrow" to DOMNodeTreeElements in the Debugger tab
https://bugs.webkit.org/show_bug.cgi?id=168752
Reviewed by Devin Rousso.
* UserInterface/Base/DOMUtilities.js:
(WebInspector.linkifyNodeReference):
(WebInspector.linkifyNodeReferenceElement):
Expose linkifying an existing element.
* UserInterface/Views/DOMNodeTreeElement.js:
(WebInspector.DOMNodeTreeElement):
(WebInspector.DOMNodeTreeElement.prototype.populateContextMenu):
Add "Reveal in DOM Tree" context menu item.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow):
Hide the go-to arrow unless hovering or selected.
2017-03-11 Matt Baker <mattbaker@apple.com>
Web Inspector: RTL: fix broken font content view
https://bugs.webkit.org/show_bug.cgi?id=169513
Reviewed by Brian Burg.
Add RTL support to the Font content view.
* UserInterface/Views/FontResourceContentView.css:
(.content-view.resource.font .preview > .line > .metric):
(body[dir=ltr] .content-view.resource.font .preview > .line > .metric):
(body[dir=rtl] .content-view.resource.font .preview > .line > .metric):
Compensate for the flipped z-order of the content and metric elements in
RTL by pushing metrics below the content.
2017-03-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Only show "Break on..." menu if backend supports DOM breakpoints
https://bugs.webkit.org/show_bug.cgi?id=169488
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/DOMBreakpointTreeController.js:
(WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
Added assert to catch future cases where UI is being added when
backend support doesn't exist.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
Check for backend support.
2017-03-10 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: popover with compositing reasons in Layers sidebar has hard to read layout
https://bugs.webkit.org/show_bug.cgi?id=167081
Reviewed by Brian Burg.
* UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
(.layer-tree-popover):
(.layer-tree-popover p):
(.layer-tree-popover ul):
(body[dir=ltr] .layer-tree-popover ul):
(body[dir=rtl] .layer-tree-popover ul):
Show `list-item-style` and make the <p> element stand out more (larger and bold).
2017-03-10 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: in Resources tab navigation bar, can't save the same file from context menu item more than once
https://bugs.webkit.org/show_bug.cgi?id=165665
Reviewed by Brian Burg.
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
Force the "Save As" dialog to appear when saving, as otherwise subsequent clicks on "Save"
in the context menu will just override the previously saved file.
2017-03-10 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: REGRESSION(r213149): scope bar items in elements sidebar have wrong padding/margin
https://bugs.webkit.org/show_bug.cgi?id=169204
Reviewed by Brian Burg.
* UserInterface/Views/Sidebar.css:
(.sidebar > .navigation-bar):
Replace `align-content` with `align-items`, as the former causes the child elements to fill
as much vertical space as possible instead of only using the space necessary for its content.
* UserInterface/Views/ScopeRadioButtonNavigationItem.css:
(.scope-radio-button-navigation-item > .arrows):
Drive-by fix: ensure that the up/down arrows are not clickable, which would prevent the
<select> from showing.
2017-03-09 Matt Baker <mattbaker@apple.com>
Web Inspector: Add XHR breakpoints UI
https://bugs.webkit.org/show_bug.cgi?id=168763
<rdar://problem/30952439>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
New UI strings.
* UserInterface/Controllers/DOMDebuggerManager.js:
Plumbing for XHR breakpoints. Like DOM breakpoints, they are tracked
per-page. Unlike DOM breakpoints, they have no separate "resolved"
state, and are simply added/removed as the main frame changes.
(WebInspector.DOMDebuggerManager):
(WebInspector.DOMDebuggerManager.prototype.get allRequestsBreakpoint):
(WebInspector.DOMDebuggerManager.prototype.get xhrBreakpoints):
(WebInspector.DOMDebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype.addXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype.removeXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._detachXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated):
(WebInspector.DOMDebuggerManager.prototype._updateXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._resolveXHRBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._saveXHRBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._domBreakpointDisabledStateDidChange):
(WebInspector.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange):
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
(WebInspector.DOMDebuggerManager.prototype._saveBreakpoints): Deleted.
Renamed `saveDOMBreakpoints`.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._pauseReasonFromPayload):
Plumbing for XHR breakpoint pause reason.
* UserInterface/Controllers/XHRBreakpointTreeController.js: Added.
Creates the "All Requests" breakpoint, handles DOMDebuggerManager messages,
and updates an associated tree outline as XHR breakpoints are added and removed.
(WebInspector.XHRBreakpointTreeController):
(WebInspector.XHRBreakpointTreeController.prototype.revealAndSelect):
(WebInspector.XHRBreakpointTreeController.prototype.disconnect):
(WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointAdded):
(WebInspector.XHRBreakpointTreeController.prototype._xhrBreakpointRemoved):
(WebInspector.XHRBreakpointTreeController.prototype._mainResourceDidChange):
(WebInspector.XHRBreakpointTreeController.prototype._reset):
* UserInterface/Main.html:
New files.
* UserInterface/Models/XHRBreakpoint.js: Added.
New model class. XHR breakpoints have an associated URL, which is matched
against the request URL when deciding whether to break. An empty URL matches
all XMLHttpRequests.
(WebInspector.XHRBreakpoint):
(WebInspector.XHRBreakpoint.prototype.get documentURL):
(WebInspector.XHRBreakpoint.prototype.get url):
(WebInspector.XHRBreakpoint.prototype.get disabled):
(WebInspector.XHRBreakpoint.prototype.set disabled):
(WebInspector.XHRBreakpoint.prototype.get serializableInfo):
(WebInspector.XHRBreakpoint.prototype.saveIdentityToCookie):
* UserInterface/Test.html:
New files.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
Plumbing for new represented object type, to prevent runtime assertion.
* UserInterface/Views/DOMBreakpointTreeElement.js:
(WebInspector.DOMBreakpointTreeElement):
Reuse BreakpointTreeElement styles.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WebInspector.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked):
(WebInspector.DebuggerSidebarPanel.prototype.willDismissPopover):
* UserInterface/Views/InputPopover.css: Added.
(.popover .input-popover-content):
(.popover .input-popover-content > .editor):
(.popover .input-popover-content > .editor > .CodeMirror):
(.popover .input-popover-content > .editor > .CodeMirror-scroll):
* UserInterface/Views/InputPopover.js: Added.
New general purpose popover class. Style and structure lifted from
the Popover implementation used by the Probe Expressions UI. A follow-up
has been filed to switch that UI over to this new class:
https://bugs.webkit.org/show_bug.cgi?id=169428.
(WebInspector.InputPopover):
(WebInspector.InputPopover.prototype.get value):
(WebInspector.InputPopover.prototype.get result):
(WebInspector.InputPopover.prototype.show):
(WebInspector.InputPopover.prototype._presentOverTargetElement):
* UserInterface/Views/XHRBreakpointTreeElement.js: Added.
Tree element class for XHR breakpoints. Behaves identically to
script and DOM breakpoint tree elements.
(WebInspector.XHRBreakpointTreeElement):
Reuse BreakpointTreeElement styles.
(WebInspector.XHRBreakpointTreeElement.prototype.onattach):
(WebInspector.XHRBreakpointTreeElement.prototype.ondetach):
(WebInspector.XHRBreakpointTreeElement.prototype.ondelete):
(WebInspector.XHRBreakpointTreeElement.prototype.onenter):
(WebInspector.XHRBreakpointTreeElement.prototype.onspace):
(WebInspector.XHRBreakpointTreeElement.prototype.populateContextMenu):
(WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementClicked):
(WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementFocused):
(WebInspector.XHRBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WebInspector.XHRBreakpointTreeElement.prototype._toggleBreakpoint):
(WebInspector.XHRBreakpointTreeElement.prototype._updateStatus):
2017-03-09 Matt Baker <mattbaker@apple.com>
REGRESSION (r196271): Web Inspector: DOM element loses focus/active selection after committing an inline attribute editor in DOMTreeOutline
https://bugs.webkit.org/show_bug.cgi?id=168119
<rdar://problem/30466013>
Reviewed by Brian Burg.
Fix a regression caused by http://trac.webkit.org/changeset/196271, which
updated WebInspector.isEventTargetAnEditableField to detect the editing
scenarios used by DOMTreeElement and DataGrid. This subtly changed the
behavior of WebInspector._focusChanged, which expected all editable fields
to be backed by a CodeMirror instance.
* UserInterface/Base/Main.js:
2017-03-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Show HTTP protocol version and other Network Load Metrics (IP Address, Priority, Connection ID)
https://bugs.webkit.org/show_bug.cgi?id=29687
<rdar://problem/19281586>
Reviewed by Matt Baker and Brian Burg.
These columns are available in the Network DataGrids, but are
initially hidden. They can be shown by right clicking on the
table header and showing these columns. We are going to rework
the default list of visible columns later.
* Localizations/en.lproj/localizedStrings.js:
New localized strings for data grid headers and Low/Medium/High.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading):
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.loadingFinished):
Pass metrics on to the Resource.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.displayNameForType):
(WebInspector.Resource.responseSourceFromPayload):
(WebInspector.Resource.networkPriorityFromPayload):
(WebInspector.Resource.connectionIdentifierFromPayload):
(WebInspector.Resource.prototype.get protocol):
(WebInspector.Resource.prototype.get priority):
(WebInspector.Resource.prototype.get remoteAddress):
(WebInspector.Resource.prototype.get connectionIdentifier):
(WebInspector.Resource.prototype.updateWithMetrics):
Include metrics accessors and default values.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Add metrics columns if the backend may be sending them.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.get data):
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype._displayNameForPriority):
(WebInspector.ResourceTimelineDataGridNode.prototype._cachedCellContent):
Display strings for new columns.
* UserInterface/Views/TimelineDataGridNode.js:
* UserInterface/Views/TimelineRecordBar.js:
(WebInspector.TimelineRecordBar.prototype.refresh):
Avoid assertions if Graph column is unavailable.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.createSettings):
(WebInspector.DataGrid.prototype.setColumnVisible):
Better support for restoring user preference of initially
hidden columns which the user may have shown.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel):
(WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
Show the Protocol and Priority in the Resources sidebar.
2017-03-09 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Show individual messages in the content pane for a WebSocket
https://bugs.webkit.org/show_bug.cgi?id=169011
Reviewed by Joseph Pecoraro.
When selecting a Web Socket in Network panel or Resources, display a table
of all messages that have been sent and received.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.webSocketWillSendHandshakeRequest):
Add a walltime parameter.
(WebInspector.FrameResourceManager.prototype._webSocketFrameReceivedOrSent):
Fix a bug: masked messages are outgoing, not incoming.
* UserInterface/Images/ArrowUp.svg: Added.
* UserInterface/Images/gtk/ArrowUp.svg: Added.
Add an icon for outgoing messages.
* UserInterface/Main.html:
* UserInterface/Models/WebSocketResource.js:
(WebInspector.WebSocketResource):
(WebInspector.WebSocketResource.prototype.get walltime):
(WebInspector.WebSocketResource.prototype.addFrame):
(WebInspector.WebSocketResource.prototype._walltimeForWebSocketTimestamp):
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.webSocketWillSendHandshakeRequest):
(WebInspector.NetworkObserver.prototype.webSocketFrameSent):
(WebInspector.NetworkObserver.prototype.webSocketFrameError):
(WebInspector.NetworkObserver):
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.get responseContentView):
* UserInterface/Views/WebSocketContentView.css: Added.
(.web-socket.content-view > .data-grid):
(.web-socket.content-view > .data-grid table.data):
(.web-socket.content-view > .data-grid td.data-column,):
(body[dir=ltr] .web-socket.content-view > .data-grid .data-column > div):
(body[dir=rtl] .web-socket.content-view > .data-grid .data-column > div):
(.web-socket.content-view .icon):
(body[dir=ltr] .web-socket.content-view .icon):
(body[dir=rtl] .web-socket.content-view .icon):
(.web-socket.content-view .outgoing .icon):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr:nth-child(odd)):
(.web-socket.content-view .data-grid table.data tr.revealed):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
* UserInterface/Views/WebSocketContentView.js: Added.
(WebInspector.WebSocketContentView):
Only show Time column when walltime is available.
(WebInspector.WebSocketContentView.textForOpcode):
(WebInspector.WebSocketContentView.prototype.shown):
(WebInspector.WebSocketContentView.prototype.hidden):
(WebInspector.WebSocketContentView.prototype.addFrame):
(WebInspector.WebSocketContentView.prototype._updateFrames):
Only render frames that haven't been rendered yet.
(WebInspector.WebSocketContentView.prototype._addRow):
(WebInspector.WebSocketContentView.prototype._timeStringFromTimestamp):
2017-03-09 Matt Baker <mattbaker@apple.com>
Web Inspector: DOMTreeManager dispatches DocumentUpdated twice when the document is cleared
https://bugs.webkit.org/show_bug.cgi?id=168984
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._setDocument):
Compare old and new document values before dispatching message.
2017-03-09 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Add settings for controlling Styles sidebar intelligence
https://bugs.webkit.org/show_bug.cgi?id=169181
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
Add three new settings:
- stylesShowInlineWarnings
- stylesInsertNewline
- stylesSelectOnFirstClick
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseDown):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._handleMouseUp):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .separator): Added.
(.content-view.settings > .setting-container):
(.content-view.settings > .setting-container.combined):
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.layout.createContainer):
(WebInspector.SettingsTabContentView.prototype.layout.createSeparator): Added.
(WebInspector.SettingsTabContentView.prototype.layout):
2017-03-08 Matt Baker <mattbaker@apple.com>
Web Inspector: Add DOM breakpoints UI for node/subtree modification events
https://bugs.webkit.org/show_bug.cgi?id=168101
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
New UI strings.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Add new manager.
* UserInterface/Controllers/DOMBreakpointTreeController.js: Added.
Handles messages from DOMDebuggerManager, and updates an associated
tree outline as DOM breakpoints are added and removed.
(WebInspector.DOMBreakpointTreeController):
(WebInspector.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
(WebInspector.DOMBreakpointTreeController.prototype.disconnect):
(WebInspector.DOMBreakpointTreeController.prototype._addBreakpointTreeElement):
(WebInspector.DOMBreakpointTreeController.prototype._removeBreakpointTreeElement):
(WebInspector.DOMBreakpointTreeController.prototype._domBreakpointAdded):
(WebInspector.DOMBreakpointTreeController.prototype._domBreakpointRemoved):
(WebInspector.DOMBreakpointTreeController.prototype._domBreakpointResolvedStateDidChange):
(WebInspector.DOMBreakpointTreeController.prototype._mainResourceDidChange):
* UserInterface/Controllers/DOMDebuggerManager.js: Added.
New frontend manager for the DOMDebugger domain. A DOM breakpoint is
described by a location (URL and node path) and type. The manager keeps
all known DOM breakpoints in memory, and considers a breakpoint to be
"resolved" once its location is pushed to the frontend.
Breakpoints located within a child frame are still associated with the
main frame. Whenever a the main resource of a child frame changes, all
unresolved breakpoints associated with the main frame are speculatively
resolved.
(WebInspector.DOMDebuggerManager):
(WebInspector.DOMDebuggerManager.prototype.get supported):
(WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
(WebInspector.DOMDebuggerManager.prototype.domBreakpointsForNode):
(WebInspector.DOMDebuggerManager.prototype.addDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype.removeDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._detachDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._detachBreakpointsForFrame):
(WebInspector.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._resolveDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._updateDOMBreakpoint):
(WebInspector.DOMDebuggerManager.prototype._saveBreakpoints):
(WebInspector.DOMDebuggerManager.prototype._domBreakpointDisabledStateDidChange):
(WebInspector.DOMDebuggerManager.prototype._childFrameWasRemoved):
(WebInspector.DOMDebuggerManager.prototype._mainFrameDidChange):
(WebInspector.DOMDebuggerManager.prototype._mainResourceDidChange):
(WebInspector.DOMDebuggerManager.prototype._nodeInserted):
(WebInspector.DOMDebuggerManager.prototype._nodeRemoved):
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._pauseReasonFromPayload):
Plumbing for DOM breakpoint pause reason.
* UserInterface/Images/DOMBreakpoint.svg: Added.
New art. Visually very similar to a script breakpoint, with some
tweaks to make it suitable for display in the DOM tree gutter.
* UserInterface/Main.html:
New files.
* UserInterface/Models/DOMBreakpoint.js: Added.
New model class. DOM breakpoints are either associated with a DOM node
when created, or constructed from a cookie and resolved in the future.
(WebInspector.DOMBreakpoint):
(WebInspector.DOMBreakpoint.prototype.get type):
(WebInspector.DOMBreakpoint.prototype.get url):
(WebInspector.DOMBreakpoint.prototype.get path):
(WebInspector.DOMBreakpoint.prototype.get disabled):
(WebInspector.DOMBreakpoint.prototype.set disabled):
(WebInspector.DOMBreakpoint.prototype.get domNodeIdentifier):
(WebInspector.DOMBreakpoint.prototype.set domNodeIdentifier):
(WebInspector.DOMBreakpoint.prototype.get serializableInfo):
(WebInspector.DOMBreakpoint.prototype.saveIdentityToCookie):
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
The DOMDebugger should not be enabled for legacy backends, since legacy
backend support was never tested and may have issues.
* UserInterface/Test.html:
New files.
* UserInterface/Test/Test.js:
(WebInspector.loaded):
Add new manager.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.resolvedRepresentedObjectForRepresentedObject):
Plumbing for additional represented object types. DOMNode is included
because the Debugger sidebar panel shows DOM breakpoint tree elements
as children of a DOM node tree element.
* UserInterface/Views/DOMBreakpointTreeElement.css: Added.
(.item.dom-breakpoint .icon):
(.item.dom-breakpoint.breakpoint-paused-icon .icon):
(.item.dom-breakpoint .status img):
(.item.dom-breakpoint .status > img.disabled):
Styles for "Pause Reason" and "DOM Breakpoints" sections.
* UserInterface/Views/DOMBreakpointTreeElement.js: Added.
Tree element class for DOM breakpoints. Includes a breakpoint status
element and context menu for delete/disable actions, similar to script
breakpoint tree elements.
(WebInspector.DOMBreakpointTreeElement):
(WebInspector.DOMBreakpointTreeElement.displayNameForType):
(WebInspector.DOMBreakpointTreeElement.prototype.onattach):
(WebInspector.DOMBreakpointTreeElement.prototype.ondetach):
(WebInspector.DOMBreakpointTreeElement.prototype.ondelete):
(WebInspector.DOMBreakpointTreeElement.prototype.onenter):
(WebInspector.DOMBreakpointTreeElement.prototype.onspace):
(WebInspector.DOMBreakpointTreeElement.prototype.populateContextMenu):
(WebInspector.DOMBreakpointTreeElement.prototype._statusImageElementClicked):
(WebInspector.DOMBreakpointTreeElement.prototype._statusImageElementFocused):
(WebInspector.DOMBreakpointTreeElement.prototype._statusImageElementMouseDown):
(WebInspector.DOMBreakpointTreeElement.prototype._toggleBreakpoint):
(WebInspector.DOMBreakpointTreeElement.prototype._updateStatus):
* UserInterface/Views/DOMNodeTreeElement.js: Added.
Tree element class for DOM nodes, which serves as a parent for DOM
breakpoint tree elements. Includes context menu for bulk delete/disable
of all child breakpoints.
(WebInspector.DOMNodeTreeElement):
(WebInspector.DOMNodeTreeElement.prototype.ondelete):
(WebInspector.DOMNodeTreeElement.prototype.populateContextMenu):
* UserInterface/Views/DOMTreeContentView.css:
Styles for DOM breakpoint gutter and breakpoint indicators, including
"left pointing" breakpoints for RTL mode.
(.content-view.dom-tree.show-gutter .tree-outline.dom):
(body[dir=ltr] .content-view.dom-tree.show-gutter .tree-outline.dom):
(body[dir=rtl] .content-view.dom-tree.show-gutter .tree-outline.dom):
(.content-view.dom-tree .tree-outline.dom li .status-image):
(body[dir=ltr] .content-view.dom-tree .tree-outline.dom li .status-image):
(body[dir=rtl] .content-view.dom-tree .tree-outline.dom li .status-image):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint):
(body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li.selected .status-image.breakpoint):
(.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled):
(.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint):
(.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint.disabled):
* UserInterface/Views/DOMTreeContentView.js:
Add support for DOM breakpoint gutter and breakpoint indicators.
Breakpoint indicator elements are part of the DOM tree element, and are
updated whenever there a breakpoint's disabled or resolved state changes.
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.get breakpointGutterEnabled):
(WebInspector.DOMTreeContentView.prototype.set breakpointGutterEnabled):
(WebInspector.DOMTreeContentView.prototype.shown):
(WebInspector.DOMTreeContentView.prototype.closed):
(WebInspector.DOMTreeContentView.prototype._domTreeElementAdded):
(WebInspector.DOMTreeContentView.prototype._domBreakpointAddedOrRemoved):
(WebInspector.DOMTreeContentView.prototype._domBreakpointDisabledStateDidChange):
(WebInspector.DOMTreeContentView.prototype._domBreakpointResolvedStateDidChange):
(WebInspector.DOMTreeContentView.prototype._updateBreakpointStatus):
(WebInspector.DOMTreeContentView.prototype._restoreBreakpointsAfterUpdate):
(WebInspector.DOMTreeContentView.prototype._breakpointsEnabledDidChange):
* UserInterface/Views/DOMTreeElement.js:
Add support for breakpoint status element and content menu.
(WebInspector.DOMTreeElement):
(WebInspector.DOMTreeElement.prototype.get breakpointStatus):
(WebInspector.DOMTreeElement.prototype.set breakpointStatus):
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
(WebInspector.DOMTreeElement.prototype.updateTitle):
(WebInspector.DOMTreeElement.prototype._updateBreakpointStatus):
(WebInspector.DOMTreeElement.prototype._statusImageContextmenu):
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles):
(.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon):
Styles for DOM node tree elements.
* UserInterface/Views/DebuggerSidebarPanel.js:
Add new DOM Breakpoints section, and support for the "DOM" pause reason.
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype.closed):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
(WebInspector.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
* UserInterface/Views/FrameDOMTreeContentView.js:
(WebInspector.FrameDOMTreeContentView.prototype._rootDOMNodeAvailable):
Restore DOM breakpoints once the root node is available.
* UserInterface/Views/Variables.css:
(:root):
Fill and stroke colors for resolved, unresolved, and disabled breakpoints.
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-10.3.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
2017-03-08 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: table header columns and cells don't line up, dragging seems backwards
https://bugs.webkit.org/show_bug.cgi?id=168289
Reviewed by Brian Burg.
Changed the algorithm used to position columns when in RTL to use right offsets instead of
left offsets. This also applies to the resizer elements between columns.
* UserInterface/Views/DataGrid.css:
(.data-grid):
(.data-grid th):
(body[dir=ltr] .data-grid :matches(th, td):not(:last-child)):
(body[dir=rtl] .data-grid :matches(th, td):not(:last-child)):
(.data-grid th:matches(.sort-ascending, .sort-descending)):
(body[dir=ltr] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
(body[dir=rtl] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)):
(.data-grid .right div):
(body[dir=ltr] .data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child):
(body[dir=rtl] .data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child):
(.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child::after):
(body[dir=ltr] .data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child::after):
(body[dir=rtl] .data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child::after):
(.data-grid th.sort-ascending > div:first-child::after):
(.data-grid th.sort-descending > div:first-child::after):
(.data-grid tr.parent td.disclosure::before):
(body[dir=ltr] .data-grid tr.parent td.disclosure::before):
(body[dir=rtl] .data-grid tr.parent td.disclosure::before):
(.data-grid td .icon):
(body[dir=ltr] .data-grid td .icon):
(body[dir=rtl] .data-grid td .icon):
(.data-grid td .go-to-arrow):
(body[dir=ltr] .data-grid td .go-to-arrow):
(body[dir=rtl] .data-grid td .go-to-arrow):
(.data-grid .resizer):
(body[dir=ltr] .data-grid .resizer):
(body[dir=rtl] .data-grid .resizer):
(.data-grid table:matches(.header, .data)):
(body[dir=ltr] .data-grid table:matches(.header, .data)):
(body[dir=rtl] .data-grid table:matches(.header, .data)):
(body[dir=ltr] .data-grid :matches(th, td):first-child):
(body[dir=rtl] .data-grid :matches(th, td):first-child):
(@media (-webkit-min-device-pixel-ratio: 2)):
(.data-grid :matches(th, td):not(:last-child)): Deleted.
(.data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
(.data-grid th:matches(.sort-ascending, .sort-descending) > div:first-child): Deleted.
(.data-grid table.header, .data-grid table.data): Deleted.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._positionResizerElements):
(WebInspector.DataGrid.prototype._positionHeaderViews):
(WebInspector.DataGrid.prototype.resizerDragging):
2017-03-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Should be able to see where Resources came from (Memory Cache, Disk Cache)
https://bugs.webkit.org/show_bug.cgi?id=164892
<rdar://problem/29320562>
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
New localized strings for memory/disk cache information.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.markResourceRequestAsServedFromMemoryCache):
Make this legacy path more explicit.
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
Make this memory cache path more explicit.
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
Pass the resource's response source onward.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.responseSourceFromPayload):
(WebInspector.Resource.prototype.get responseSource):
(WebInspector.Resource.prototype.hasResponse):
(WebInspector.Resource.prototype.updateForResponse):
(WebInspector.Resource.prototype.markAsCached):
(WebInspector.Resource.prototype.legacyMarkServedFromMemoryCache):
(WebInspector.Resource.prototype.legacyMarkServedFromDiskCache):
Include a WebInspector.ResponseSource enum.
Update a Resource's responseSource state where appropriate.
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.requestServedFromCache):
Mark legacy path.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView):
Tweak default column sizes to make Cached and graph columns a little larger.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
(WebInspector.ResourceTimelineDataGridNode.prototype._cachedCellContent):
Update "Cached" column data with more information if available.
* UserInterface/Views/NetworkGridContentView.css:
(.content-view.network-grid > .data-grid .cache-type):
(.content-view.network-grid > .data-grid:matches(:focus, .force-focus) tr.selected .cache-type):
Style the cache type a secondary color.
2017-03-08 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: add a "create breakpoint" context menu item for linkified source locations
https://bugs.webkit.org/show_bug.cgi?id=47442
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.isShowingResourcesTab): Added.
(WebInspector.linkifyElement):
Now calls WebInspector.appendContextMenuItemsForSourceCode on "contextmenu" events for the
created element.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.breakpointForSourceCodeLocation):
Returns the first breakpoint (since there should only be one) that matches the given location.
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
Rework parameters to also accept a WebInspector.SourceCodeLocation, thereby allowing the
setting of breakpoints so long as the associated WebInspector.SourceCode is a script.
* UserInterface/Views/Main.css:
(.resource-link, .go-to-link):
Prevent link from being selected.
2017-03-08 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: Switching back to System Direction doesn't change the dock side
https://bugs.webkit.org/show_bug.cgi?id=169323
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.setLayoutDirection):
Change the dock side based on the resolved layout direction, not the current setting value.
2017-03-08 Matt Baker <mattbaker@apple.com>
REGRESSION (r212998): Web Inspector: DetailsSections with options have broken layout
https://bugs.webkit.org/show_bug.cgi?id=169350
Reviewed by Brian Burg.
* UserInterface/Views/DetailsSection.css:
(.details-section):
Fix negative margin.
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow),):
(body[dir=ltr] .details-section > .header::before,):
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow, .options > .navigation-bar),): Deleted.
It looks like :matches doesn't accept compound selectors in its selector list.
2017-03-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DOM Tree broken if an element has a "debounce" attribute
https://bugs.webkit.org/show_bug.cgi?id=169336
<rdar://problem/30899430>
Reviewed by Brian Burg.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode):
(WebInspector.DOMNode.prototype.getAttribute):
(WebInspector.DOMNode.prototype.removeAttribute.mycallback):
(WebInspector.DOMNode.prototype.removeAttribute):
Convert the attributes map to an actual Map to avoid name collisions
with Object.prototype properties.
2017-03-07 Chris Dumez <cdumez@apple.com>
Drop non-standard MessageEvent.webkitInitMessageEvent()
https://bugs.webkit.org/show_bug.cgi?id=169295
Reviewed by Joseph Pecoraro.
Drop MessageEvent.webkitInitMessageEvent and update parameters for various
init*Event() operations to match the current implementation.
* UserInterface/Models/NativeFunctionParameters.js:
2017-03-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Show Web Socket connections in Network tab
https://bugs.webkit.org/show_bug.cgi?id=167520
Reviewed by Joseph Pecoraro.
Show Web Socket connections in Network and Resources tabs. Display HTTP headers
of Web Socket handshake request in the details sidebar.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.initialize):
(WebInspector.FrameResourceManager.prototype.webSocketCreated):
(WebInspector.FrameResourceManager.prototype.webSocketWillSendHandshakeRequest):
webSocketWillSendHandshakeRequest doesn't receive a request URL as one of its parameters.
Store URLs received from webSocketCreated method in _webSocketIdentifierToURL map.
(WebInspector.FrameResourceManager.prototype.webSocketHandshakeResponseReceived):
(WebInspector.FrameResourceManager.prototype.webSocketFrameReceived):
(WebInspector.FrameResourceManager.prototype.webSocketFrameSent):
(WebInspector.FrameResourceManager.prototype.webSocketClosed):
Mark resource as finished when Web Socket handshake is complete or Web Socket is closed.
This may change in the future.
(WebInspector.FrameResourceManager.prototype._webSocketFrameReceivedOrSent):
* UserInterface/Main.html:
* UserInterface/Models/WebSocketResource.js: Added.
(WebInspector.WebSocketResource):
(WebInspector.WebSocketResource.prototype.set readyState):
(WebInspector.WebSocketResource.prototype.get readyState):
(WebInspector.WebSocketResource.prototype.get frames):
(WebInspector.WebSocketResource.prototype.addFrame):
Introduce WebSocketResource model to store WebSocket frames (incoming and outgoing messages)
and readyState.
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.webSocketCreated):
(WebInspector.NetworkObserver.prototype.webSocketWillSendHandshakeRequest):
(WebInspector.NetworkObserver.prototype.webSocketHandshakeResponseReceived):
(WebInspector.NetworkObserver.prototype.webSocketClosed):
(WebInspector.NetworkObserver.prototype.webSocketFrameReceived):
(WebInspector.NetworkObserver.prototype.webSocketFrameError):
(WebInspector.NetworkObserver.prototype.webSocketFrameSent):
(WebInspector.NetworkObserver):
Add corresponding methods for the newly added FrameResourceManager methods.
* UserInterface/Test.html:
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.treeElementAddedOrChanged):
Don't show the go to arrow for WebSocket items since WebSocketContentView isn't implemented
yet.
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.get responseContentView):
Don't show any content views for WebSocket items.
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.ondblclick):
Don't open WebSocket URL in a new browser tab.
2017-03-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Should be able to push nodes in an iframe subtree to the frontend
https://bugs.webkit.org/show_bug.cgi?id=169086
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._selectedNodeDidChange):
Use the URL of the main frame instead of the content frame URL.
2017-03-01 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Annotators should not be enabled if the TextEditor is not visible
https://bugs.webkit.org/show_bug.cgi?id=169059
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addResource):
(WebInspector.DebuggerSidebarPanel.prototype._addScript):
Only call `showDefaultContentViewForTreeElement` if the panel has been added to a sidebar.
It is not valid to simply check whether the panel is visible, as the sidebar can be collapsed.
In that case, we still want to display the content view, so we instead check that the panel
has been added to a sidebar, meaning that it is ready to be displayed in the current tab.
2017-02-28 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: expose the Layout Direction setting in Production builds, keep using LTR by default
https://bugs.webkit.org/show_bug.cgi?id=168999
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.layout):
Remove the WebInspector.isDebugUIEnabled() check around the Layout Direction setting.
2017-02-28 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: It is possible to get the New Tab button in addition to the seven expected tabs
https://bugs.webkit.org/show_bug.cgi?id=168976
Reviewed by Brian Burg.
* UserInterface/Views/TabBar.css:
(.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned):hover > .icon):
(.tab-bar.collapsed:not(.hide-titles) > .item:hover > .close):
(.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned, .default-tab):hover > .icon): Deleted.
(.tab-bar.collapsed:not(.hide-titles) > .item:not(.default-tab):hover > .close): Deleted.
2017-02-28 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: CSS variable uses that are unresolved should have an error or warning icon
https://bugs.webkit.org/show_bug.cgi?id=168352
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.update):
Insert a warning icon if the variable is not found in the computed style.
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: add support for Color Picker
https://bugs.webkit.org/show_bug.cgi?id=168853
Reviewed by Brian Burg.
* UserInterface/Views/ColorPicker.css:
(.color-picker):
(body[dir=ltr] .color-picker > .brightness):
(body[dir=rtl] .color-picker > .brightness):
(body[dir=ltr] .color-picker > .opacity):
(body[dir=rtl] .color-picker > .opacity):
(.color-picker > .brightness): Deleted.
(.color-picker > .opacity): Deleted.
* UserInterface/Views/ColorWheel.js:
(WebInspector.ColorWheel.prototype.set dimension):
Set the CSS width and height style of the container element to ensure that the element only
takes up the space it needs.
* UserInterface/Views/Slider.css:
(.slider):
* UserInterface/Views/Variables.css:
(:root):
Add `--slider-height` CSS variable for convenience.
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: add support for Bezier/Spring editor
https://bugs.webkit.org/show_bug.cgi?id=168854
Reviewed by Brian Burg.
* UserInterface/Views/BezierEditor.css:
(.bezier-editor):
(body[dir=ltr] .bezier-editor):
(body[dir=rtl] .bezier-editor):
(.bezier-editor > .bezier-preview-timing):
(body[dir=ltr] .bezier-editor > .bezier-preview-timing):
(body[dir=rtl] .bezier-editor > .bezier-preview-timing):
(@keyframes bezierPreview):
(body[dir=rtl] .bezier-editor > .bezier-container):
(.bezier-editor > .number-input-container > input):
(body[dir=ltr] .bezier-editor > .number-input-container > input):
(body[dir=rtl] .bezier-editor > .number-input-container > input):
* UserInterface/Views/SpringEditor.css:
(.spring-editor > .spring-timing):
(.spring-editor > .spring-timing::before):
(.spring-editor > .spring-timing::after):
(body[dir=ltr] .spring-editor > .spring-timing::before, body[dir=rtl] .spring-editor > .spring-timing::after):
(body[dir=ltr] .spring-editor > .spring-timing::after, body[dir=rtl] .spring-editor > .spring-timing::before):
(.spring-editor > .number-input-container > .number-input-row > input):
* UserInterface/Views/SpringEditor.js:
(WebInspector.SpringEditor.prototype._updatePreviewAnimation):
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: Elements tab Styles sidebar label/arrows need adjustment
https://bugs.webkit.org/show_bug.cgi?id=168746
Reviewed by Brian Burg.
* UserInterface/Views/ScopeRadioButtonNavigationItem.css:
(.scope-radio-button-navigation-item):
(.scope-radio-button-navigation-item > .scope-radio-button-item-select):
(body[dir=ltr] .scope-radio-button-navigation-item > .scope-radio-button-item-select):
(body[dir=rtl] .scope-radio-button-navigation-item > .scope-radio-button-item-select):
(.scope-radio-button-navigation-item > .scope-radio-button-item-select:focus):
(.scope-radio-button-navigation-item > .arrows):
(body[dir=ltr] .scope-radio-button-navigation-item > .arrows):
(body[dir=rtl] .scope-radio-button-navigation-item > .arrows):
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: copying a search result out of Search Tab navigation sidebar does nothing
https://bugs.webkit.org/show_bug.cgi?id=167074
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector._copy):
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView.prototype.handleCopyEvent):
Provide the container TabContentView with the opportunity to intercept the copy event.
* UserInterface/Models/SourceCodeTextRange.js:
(WebInspector.SourceCodeTextRange.prototype.get synthesizedTextValue):
* UserInterface/Views/SearchResultTreeElement.js:
(WebInspector.SearchResultTreeElement.prototype.get synthesizedTextValue):
Generate a string with the format `${url}:${lineNumber}:${resultLine}`.
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: Styles - Rules sidebar icons are misaligned
https://bugs.webkit.org/show_bug.cgi?id=168807
Reviewed by Brian Burg.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section > .header):
(body[dir=ltr] .style-declaration-section > .header):
(body[dir=rtl] .style-declaration-section > .header):
(.style-declaration-section.locked > .header > .locked-icon):
(body[dir=ltr] .style-declaration-section.locked > .header > .locked-icon):
(body[dir=rtl] .style-declaration-section.locked > .header > .locked-icon):
(.style-declaration-section > .header > .icon):
(body[dir=ltr] .style-declaration-section > .header > .icon):
(body[dir=rtl] .style-declaration-section > .header > .icon):
(.style-declaration-section > .header > textarea):
(body[dir=ltr] .style-declaration-section > .header > textarea):
(body[dir=rtl] .style-declaration-section > .header > textarea):
(.style-declaration-section.invalid-selector > .header > .icon):
* UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
(.sidebar > .panel.details.css-style > .content):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
(.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
(body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
* UserInterface/Views/Variables.css:
(:root):
2017-02-25 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: disclosure triangles in details section headers should be flipped and aligned right
https://bugs.webkit.org/show_bug.cgi?id=168283
Reviewed by Brian Burg.
* UserInterface/Views/DetailsSection.css:
(.details-section):
(.details-section > .header):
(body[dir=ltr] .details-section > .header):
(body[dir=rtl] .details-section > .header):
(.details-section > .header > .options > .navigation-bar):
(body[dir=ltr] .details-section > .header > :matches(label, .node-link, .go-to-arrow, .options > .navigation-bar), body[dir=rtl] .details-section > .header::before):
(body[dir=ltr] .details-section > .header::before, body[dir=rtl] .details-section > .header > :matches(label, .node-link, .go-to-arrow, .options > .navigation-bar)):
(.details-section > .header::before):
(body[dir=rtl] .details-section > .header::before):
(.details-section > .header > label):
(.details-section > .header > label > input[type="checkbox"]):
(body[dir=ltr] .details-section > .header > label > input[type="checkbox"]):
(body[dir=rtl] .details-section > .header > label > input[type="checkbox"]):
(.details-section > .header .go-to-arrow):
(body[dir=ltr] .details-section > .header .go-to-arrow):
(body[dir=rtl] .details-section > .header .go-to-arrow):
(.details-section > .content > .group > .row.simple > .label):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .label):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .label):
(.details-section > .content > .group > .row.simple > .value):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .value):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .value):
(.details-section > .content > .group > .row.simple > .value .go-to-arrow):
(body[dir=ltr] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
(body[dir=rtl] .details-section > .content > .group > .row.simple > .value .go-to-arrow):
(.details-section > .header > :matches(.node-link, .go-to-arrow)): Deleted.
2017-02-24 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: add support for Error page
https://bugs.webkit.org/show_bug.cgi?id=168855
Reviewed by Brian Burg.
* UserInterface/Debug/UncaughtExceptionReporter.css:
(.uncaught-exception-sheet):
(body[dir=ltr] .uncaught-exception-sheet):
(body[dir=rtl] .uncaught-exception-sheet):
(.uncaught-exception-sheet h1 > img):
(body[dir=ltr] .uncaught-exception-sheet h1 > img):
(body[dir=rtl] .uncaught-exception-sheet h1 > img):
(.uncaught-exception-sheet h2 > img):
(body[dir=ltr] .uncaught-exception-sheet h2 > img):
(body[dir=rtl] .uncaught-exception-sheet h2 > img):
(.uncaught-exception-sheet dd):
(body[dir=ltr] .uncaught-exception-sheet dd):
(body[dir=rtl] .uncaught-exception-sheet dd):
(.uncaught-exception-sheet ul):
(body[dir=ltr] .uncaught-exception-sheet ul):
(body[dir=rtl] .uncaught-exception-sheet ul):
2017-02-24 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Uncaught Exception: Unknown angle units "undefined"
https://bugs.webkit.org/show_bug.cgi?id=168851
Reviewed by Brian Burg.
* UserInterface/Views/GradientEditor.js:
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
2017-02-24 Jon Lee <jonlee@apple.com>
Alias "system-ui" for the System font name
https://bugs.webkit.org/show_bug.cgi?id=151493
Reviewed by Tim Horton and Joseph Pecoraro.
* UserInterface/Models/CSSKeywordCompletions.js: Ditto.
2017-02-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: DOM Tree spacing is wrong
https://bugs.webkit.org/show_bug.cgi?id=168744
Reviewed by Brian Burg.
* UserInterface/Base/Utilities.js:
(Element.prototype.totalOffsetRight):
* UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom):
(.tree-outline.dom ol):
(body[dir=ltr] .tree-outline.dom ol):
(body[dir=rtl] .tree-outline.dom ol):
(.tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(body[dir=ltr] .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(body[dir=rtl] .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom li):
(body[dir=ltr] .tree-outline.dom li):
(body[dir=rtl] .tree-outline.dom li):
(.tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(body[dir=rtl] .tree-outline.dom li.pseudo-class-enabled > .selection-area::before):
(body[dir=ltr] .tree-outline.dom.single-node li):
(body[dir=rtl] .tree-outline.dom.single-node li):
(.tree-outline.dom li.parent):
(body[dir=ltr] .tree-outline.dom li.parent):
(body[dir=rtl] .tree-outline.dom li.parent):
(body[dir=ltr] .tree-outline.dom li .html-tag.close):
(body[dir=rtl] .tree-outline.dom li .html-tag.close):
(.tree-outline.dom li.parent::before):
(body[dir=rtl] .tree-outline.dom li.parent::before):
(body[dir=ltr] .tree-outline.dom li.parent::before):
(.tree-outline.dom li.parent.shadow::after):
(body[dir=ltr] .tree-outline.dom li.parent.shadow::after):
(body[dir=rtl] .tree-outline.dom li.parent.shadow::after):
(.tree-outline.dom.single-node li): Deleted.
(.tree-outline.dom li .html-tag.close): Deleted.
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.isEventWithinDisclosureTriangle):
Calculate the position of the ::before triangle based on the layout direction.
2017-02-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: navigation sidebar section disclosure triangles and tree element icons should be aligned right
https://bugs.webkit.org/show_bug.cgi?id=168284
Reviewed by Brian Burg.
* UserInterface/Views/TreeOutline.css:
(.tree-outline,):
(.tree-outline.large .item):
(body[dir=ltr] .tree-outline .item :matches(.disclosure-button, .icon)):
(body[dir=rtl] .tree-outline .item :matches(.disclosure-button, .icon)):
(body[dir=ltr] .tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon):
(body[dir=rtl] .tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon):
(.tree-outline .item .disclosure-button):
(body[dir=rtl] .tree-outline .item .disclosure-button):
(.tree-outline .item .icon):
(body[dir=ltr] .tree-outline .item .icon):
(body[dir=rtl] .tree-outline .item .icon):
(.tree-outline.large .item .icon):
(.tree-outline .item .status):
(body[dir=ltr] .tree-outline .item .status):
(body[dir=rtl] .tree-outline .item .status):
(.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon): Deleted.
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline._generateStyleRulesIfNeeded):
2017-02-22 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: RTL: Sidebar borders are on the wrong side
https://bugs.webkit.org/show_bug.cgi?id=168743
Reviewed by Matt Baker.
* UserInterface/Views/Sidebar.css:
(body[dir=ltr] .sidebar.right > .resizer, body[dir=rtl] .sidebar.left > .resizer):
(body[dir=ltr] .sidebar.left > .resizer, body[dir=rtl] .sidebar.right > .resizer):
(body[dir=ltr] .sidebar.left, body[dir=rtl] .sidebar.right):
(body[dir=ltr] .sidebar.right, body[dir=rtl] .sidebar.left):
(.sidebar.right > .resizer): Deleted.
(.sidebar.left > .resizer): Deleted.
(.sidebar.left): Deleted.
(.sidebar.right): Deleted.
* UserInterface/Views/Sidebar.js:
(WebInspector.Sidebar.prototype.resizerDragging):
Reverse the change if the direction is RTL.
2017-02-22 Brian Burg <bburg@apple.com>
Web Inspector: RTL: Settings tab labels need adjustment
https://bugs.webkit.org/show_bug.cgi?id=168497
Reviewed by Matt Baker.
Flip margins. Use 'text-align: end' instead of manually choosing
right and left based on body[dir].
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .setting-container > .setting-name):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-name):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
(body[dir=ltr] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
(body[dir=rtl] .content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
2017-02-21 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Prefer Resources tab over Network tab when showing files
https://bugs.webkit.org/show_bug.cgi?id=168021
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.handlePossibleLinkClick):
(WebInspector.openURL):
Add `options` parameter to provide greater customization.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Add logic for `ignoreNetworkTab` option that will ignore instances of NetworkTabContentView.
* UserInterface/Controllers/BreakpointPopoverController.js:
(WebInspector.BreakpointPopoverController.prototype.appendContextMenuItems):
* UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.showMainResourceForFrame):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty):
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView.prototype._mouseWasClicked.followLink):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
(WebInspector.DOMTreeElement.prototype._showCustomElementDefinition):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/NetworkTimelineView.js:
(WebInspector.NetworkTimelineView.prototype.showContentViewForTreeElement):
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype._treeSelectionDidChange):
(WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
* UserInterface/Views/TimelineDataGrid.js:
(WebInspector.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
Change arguments of functions to change content views to ignore the Network tab.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.hasRepresentedObject):
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.hasRepresentedObject):
* UserInterface/Views/NetworkTabContentView.js:
(WebInspector.NetworkTabContentView.prototype.canShowRepresentedObject):
Ensure that the Network tab can only display resources that it has entries for in its view.
2017-02-21 Brian Burg <bburg@apple.com>
Web Inspector: RTL: console scope bar's unread message indicator is misaligned
https://bugs.webkit.org/show_bug.cgi?id=168625
Reviewed by Matt Baker.
* UserInterface/Views/LogContentView.css:
(.log-scope-bar > li.unread::before):
(body[dir=ltr] .log-scope-bar > li.unread::before):
(body[dir=rtl] .log-scope-bar > li.unread::before):
2017-02-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Tooltip for "Show console tab" should read "Show Console tab"
https://bugs.webkit.org/show_bug.cgi?id=168630
<rdar://problem/30621662>
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
2017-02-20 Brian Burg <bburg@apple.com>
Web Inspector: RTL: back/forward navigation buttons should not be flipped
https://bugs.webkit.org/show_bug.cgi?id=168275
<rdar://problem/30506897>
Reviewed by Matt Baker.
The leading button is always "back" and the trailing button is always "forward", but
in RTL the icons are swapped so that it still looks like '< >' from left-to-right.
Rename the two arrows in the SVG to "left" and "right" arrows, and use them appropriately
in ContentBrowser for back-forward icons based on the layout direction.
* UserInterface/Images/BackForwardArrows.svg:
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser):
* UserInterface/Views/FindBanner.css:
(.find-banner > button.segmented.left > .glyph):
(.find-banner > button.segmented.left:active:not(:disabled) > .glyph):
(.find-banner > button.segmented.right > .glyph):
(.find-banner > button.segmented.right:active:not(:disabled) > .glyph):
2017-02-20 Brian Burg <bburg@apple.com>
Web Inspector: RTL: hierarchical path components need spacing and icon adjustments
https://bugs.webkit.org/show_bug.cgi?id=168581
Reviewed by Matt Baker.
Flip a bunch of padding, margin, and offsets. Flip the chevron using a CSS transform.
* UserInterface/Views/HierarchicalPathComponent.css:
(.hierarchical-path-component):
(.hierarchical-path-component > .icon):
(.hierarchical-path-component > :matches(.icon, .selector-arrows)):
(body[dir=ltr] .hierarchical-path-component > :matches(.icon, .selector-arrows)):
(body[dir=rtl] .hierarchical-path-component > :matches(.icon, .selector-arrows)):
(.hierarchical-path-component > .selector-arrows):
(.hierarchical-path-component > select):
(body[dir=ltr] .hierarchical-path-component > select):
(body[dir=rtl] .hierarchical-path-component > select):
(.hierarchical-path-component > .separator):
(body[dir=ltr] .hierarchical-path-component > .separator):
(body[dir=rtl] .hierarchical-path-component > .separator):
(.hierarchical-path-component.text-only):
(body[dir=ltr] .hierarchical-path-component.text-only):
(body[dir=rtl] .hierarchical-path-component.text-only):
(body[dir=ltr] .hierarchical-path-component.text-only > select):
(body[dir=rtl] .hierarchical-path-component.text-only > select):
2017-02-20 Brian Burg <bburg@apple.com>
Web Inspector: RTL: adjust positioning of scope bar items with multiple values
https://bugs.webkit.org/show_bug.cgi?id=168575
Reviewed by Matt Baker.
Mirror the leading margin as necessary. Adjust the <select> positioning
so that the popup is really close to the scope bar item's position.
* UserInterface/Views/ScopeBar.css:
(body[dir=ltr] .scope-bar > li.multiple > select):
(body[dir=rtl] .scope-bar > li.multiple > select):
(.scope-bar > li.multiple > .arrows):
(body[dir=ltr] .scope-bar > li.multiple > .arrows):
(body[dir=rtl] .scope-bar > li.multiple > .arrows):
2017-02-20 Brian Burg <bburg@apple.com>
Web Inspector: RTL: sidebar expand/collapse icons need to be flipped
https://bugs.webkit.org/show_bug.cgi?id=168276
<rdar://problem/30506999>
Reviewed by Matt Baker.
The sidebars themselves are already flipped due to the layout direction change, but the
icons have a directional design and need to be manually flipped based on the layout direction.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView):
2017-02-17 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Use Maps in FrameResourceManager instead of objects
https://bugs.webkit.org/show_bug.cgi?id=168549
<rdar://problem/30590110>
Reviewed by Joseph Pecoraro.
Use Map for _frameIdentifierMap and _resourceRequestIdentifierMap.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.initialize):
(WebInspector.FrameResourceManager.prototype.get frames):
(WebInspector.FrameResourceManager.prototype.frameForIdentifier):
(WebInspector.FrameResourceManager.prototype.frameDidDetach):
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.markResourceRequestAsServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveData):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFinishLoading):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidFailLoading):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
(WebInspector.FrameResourceManager.prototype._processMainFrameResourceTreePayload):
(WebInspector.FrameResourceManager.prototype._createFrame):
2017-02-17 Brian Burg <bburg@apple.com>
Web Inspector: RTL: Inspector window should dock to the left when using RTL layout direction
https://bugs.webkit.org/show_bug.cgi?id=168273
<rdar://problem/29949325>
Reviewed by Matt Baker.
Add the ability to dock Web Inspector to the left of the inspected view.
The frontend decides whether the Dock to Side button docks left or right
based on the current layout direction.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Rename the "Dock to Right" button to "Dock to Side" instead. It's easier to just
have one button than to try and conditionally hide one or the other based on
the layout direction. Change the dock callback and the icon used for the button
depending on layout direction.
(WebInspector.resolvedLayoutDirection):
Refactor getLayoutDirection() to resolvedLayoutDirection() so callers get back
either "ltr" or "rtl".
Flip the dock side if layout direction changes while docked to the side.
Adjust various code paths to account for the existing of left docking. In particular,
resize rejection needs special-casing for resizing leftward from beyond the right side
of the Inspector view when it is docked to the left. Improve related comments since it
took me an unbelievable amount of time to understand what this code is supposed to do.
* UserInterface/Views/Main.css:
(body.docked.right):
(body.docked.left #docked-resizer):
(body.docked:matches(.right, .left) #navigation-sidebar.collapsed > .resizer):
(body.docked.right #navigation-sidebar.collapsed > .resizer): Deleted.
Add .docked.left analogues to rules for .docked.right.
2017-02-17 Brian Burg <bburg@apple.com>
Web Inspector: RTL: add TabBar support for RTL layout
https://bugs.webkit.org/show_bug.cgi?id=168446
Reviewed by Matt Baker.
There are two types of changes needed:
- Flip leading and trailing borders and margins for the tab items.
- Enumerate tabs in reverse order when performing manual layout.
Along the way, I added some color variables local to TabBar.css to
reduce the number of redundant border-style and color declarations.
* UserInterface/Base/Main.js:
Change this to resolvedLayoutDirection(), and resolve "System" to "ltr" or "rtl".
This makes it suitable for use in manual layout without worrying about "System".
Fix the one existing use-site to not do its own resolution of "System".
* UserInterface/Views/TabBar.css:
Define commonly used colors and border styles and adopt var() usages.
Flip borders that should vary in RTL vs LTR, but not all of them. In
many cases, the border is not direction-dependent and looks the same
on both sides. Also, no need to swap animated properties as all manual
layout is done from the left edge.
(.tab-bar):
(body.window-inactive .tab-bar):
(.tab-bar > .top-border):
(body.window-inactive .tab-bar > .top-border):
(.tab-bar > .item):
(body[dir=ltr] .tab-bar > :nth-child(n + 2 of .item),):
(body[dir=rtl] .tab-bar > :nth-child(n + 2 of .item),):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover):
(body[dir=ltr] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,):
(body[dir=rtl] .tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,):
(body.window-inactive .tab-bar > .item):
(body[dir=ltr].window-inactive .tab-bar > .item):
(body[dir=rtl].window-inactive .tab-bar > .item):
(.tab-bar > .item > .close):
(body[dir=ltr] .tab-bar > .item > .close):
(body[dir=rtl] .tab-bar > .item > .close):
(.tab-bar > .item:not(.pinned) > .flex-space:last-child):
(body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child):
(body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child):
(.tab-bar > .item > .title):
(body[dir=ltr] .tab-bar > .item > .title):
(body[dir=rtl] .tab-bar > .item > .title):
(.tab-bar.collapsed > .item > .close):
(body[dir=ltr] .tab-bar.collapsed > .item > .close):
(body[dir=rtl] .tab-bar.collapsed > .item > .close):
* UserInterface/Views/TabBar.js:
When doing manual layout, keep doing calculations with respect to the left edge
and keep the list of tab items in logical (LTR) order, as in the DOM. But, when
manually positioning tab items for RTL layout direction, reverse the tab items
so that it matches the screen/layout order of the flipped flexbox items.
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
In RTL, put extra space after closing a tab to the left of normal tabs. This
matches the behavior of LTR, but requires some additional measurement since we
still position tabs using `left` and can't simply infer the leftover space.
(WebInspector.TabBar.prototype._tabBarItemsFromLeftToRight): Added.
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseUp):
2017-02-17 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Zoom level UI out of sync with setting value
https://bugs.webkit.org/show_bug.cgi?id=168522
Reviewed by Brian Burg.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
Trigger a layout whenever the zoomFactor setting is changed. This is needed since the
zoomFactor setting can also be modified by global keyboard shortcuts.
2017-02-17 Brian Burg <bburg@apple.com>
Web Inspector: Loc: Zoom level in Settings tab needs to use localized formatting
https://bugs.webkit.org/show_bug.cgi?id=168465
Reviewed by Matt Baker.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.layout):
(WebInspector.SettingsTabContentView):
2017-02-17 Brian Burg <bburg@apple.com>
Web Inspector: RTL: CodeMirror text editor instances have scrollbars on left and right
https://bugs.webkit.org/show_bug.cgi?id=168274
Reviewed by Matt Baker.
CodeMirror doesn't draw its own scrollbar correctly when content is in RTL,
so it draws an extra scrollbar on the right side. And, for the majority of
cases, we don't want to view CSS / JS content aligned to the right.
Manually set the "dir" attribute for all CodeMirror editor instances to "ltr".
Clients can override this if custom RTL layout is available in a particular case.
* UserInterface/Views/CodeMirrorEditor.js:
(WebInspector.CodeMirrorEditor.create):
(WebInspector.CodeMirrorEditor):
2017-02-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Timeline DataGridNodes are lacking detail in title
https://bugs.webkit.org/show_bug.cgi?id=168529
<rdar://problem/30579959>
Reviewed by Brian Burg.
* UserInterface/Views/TimelineDataGridNode.js:
(WebInspector.TimelineDataGridNode.prototype.displayName):
Include detailed information for DataGridNode display names, since we
want to show maximum detail for records in the DataGrid.
2017-02-16 Brian Burg <bburg@apple.com>
Web Inspector: add DebugUI setting to manually override UI layout direction
https://bugs.webkit.org/show_bug.cgi?id=168222
Reviewed by Joseph Pecoraro.
Expose three layout direction settings:
- System (inherit system UI layout direction)
- LTR (the default regardless of system language)
- RTL (under development, only accessible via this menu)
* UserInterface/Base/Main.js:
The UI layout direction is normally only set once per frontend load.
There is no expectation on macOS that applications can switch dynamically.
But, for DebugUI purposes we need to switch the layout direction quickly.
Store the new setting and trigger a hard reload of the frontend page.
If the 'system' setting is specified, fall back to the system layout
direction as provided by InspectorFrontendHost.
* UserInterface/Base/Setting.js:
Add an application-level setting for (user interface) layout direction.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.prototype.layout):
(WebInspector.SettingsTabContentView.prototype.initialLayout): Deleted.
Make this a normal layout() method so that we can dirty the view
when DebugUI is turned on or off.
2017-02-16 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: popovers shouldn't be dismissed when Web Inspector window is dragged
https://bugs.webkit.org/show_bug.cgi?id=166935
Reviewed by Joseph Pecoraro.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._mouseDown): Created.
(WebInspector._dockedResizerMouseDown):
(WebInspector._moveWindowMouseDown):
Applies Popover.EventPreventDismissSymbol whenever a mousedown event is fired for an element
that controls the positioning or size of the WebInspector window.
* UserInterface/Views/Popover.js:
(WebInspector.Popover.prototype._handleEvent):
(WebInspector.Popover.EventPreventDismissSymbol):
Do not dismiss the popover if Popover.EventPreventDismissSymbol is applied to the event.
2017-02-15 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Request headers when copied & pasted should follow HTTP format, colon instead of tab
https://bugs.webkit.org/show_bug.cgi?id=168155
Reviewed by Matt Baker.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid):
(WebInspector.DataGrid.prototype.set copyTextDelimiter):
(WebInspector.DataGrid.prototype._copyTextForDataGridNode):
(WebInspector.DataGrid.prototype._copyTextForDataGridHeaders):
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid):
Allow instances of DataGrid to change the delimiter between items when copying rows.
2017-02-15 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Split console should be allowed when docked bottom on Elements/Resources/Debugger/Storage tabs
https://bugs.webkit.org/show_bug.cgi?id=168385
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.updateDockedState):
If the new docked configuration does not support the split console, hide it.
* UserInterface/Views/DebuggerTabContentView.js:
(WebInspector.DebuggerTabContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/StorageTabContentView.js:
(WebInspector.StorageTabContentView.prototype.get supportsSplitContentBrowser):
2017-02-14 Brian Burg <bburg@apple.com>
Web Inspector: RTL: adjust padding of dashboard icons
https://bugs.webkit.org/show_bug.cgi?id=168340
Reviewed by Matt Baker.
Extract the direction-dependent padding into a "local" variable.
Use two rules to apply it to whichever is the leading side.
While we tend to use leading/trailing in Apple layout technologies,
I think the CSS logical properties specification sticks to using
-start and -end, so let's use that nomenclature where we can.
* UserInterface/Views/DefaultDashboardView.css:
(.toolbar .dashboard.default > .item > div):
(body[dir=ltr] .toolbar .dashboard.default > .item > div):
(body[dir=rtl] .toolbar .dashboard.default > .item > div):
2017-02-14 Eric Carlson <eric.carlson@apple.com>
[MediaStream] add navigator.getUserMedia for compatibility with legacy content
https://bugs.webkit.org/show_bug.cgi?id=168324
<rdar://problem/30513125>
Reviewed by Youenn Fablet.
* UserInterface/Models/NativeFunctionParameters.js:
2017-02-13 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: provide a way to show current value of CSS variables in style rules
https://bugs.webkit.org/show_bug.cgi?id=168172
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Images/CSSVariable.svg: Added.
* UserInterface/Models/TextMarker.js:
(WebInspector.TextMarker.Type):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor._createInlineSwatches.update):
* UserInterface/Views/CodeMirrorTextMarkers.js:
(createCodeMirrorTextMarkers):
(createCodeMirrorVariableTextMarkers):
* UserInterface/Views/InlineSwatch.css:
(.inline-swatch.variable):
(.inline-swatch:matches(.bezier, .spring, .variable)):
(.inline-swatch:matches(.bezier, .spring, .variable):hover):
(.inline-swatch:matches(.bezier, .spring, .variable):active):
(.inline-swatch-variable-popover):
(.inline-swatch-variable-popover .CodeMirror):
(.inline-swatch-variable-popover .CodeMirror pre):
(.inline-swatch:matches(.bezier, .spring):hover): Deleted.
(.inline-swatch:matches(.bezier, .spring):active): Deleted.
* UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch):
(WebInspector.InlineSwatch.prototype._fallbackValue):
(WebInspector.InlineSwatch.prototype._swatchElementClicked):
(WebInspector.InlineSwatch.prototype._valueEditorValueDidChange):
(WebInspector.InlineSwatch.Type):
2017-02-13 Matt Baker <mattbaker@apple.com>
REGRESSION(r188138): Web Inspector: cannot edit next/previous DOM attribute by using tab/shift-tab
https://bugs.webkit.org/show_bug.cgi?id=168120
<rdar://problem/30466065>
Reviewed by Joseph Pecoraro.
DOMTreeElement's attribute editing committed handler shouldn't early return
when a `moveDirection` has been specified.
* UserInterface/Views/DOMTreeElement.js:
2017-02-12 Brian Burg <bburg@apple.com>
Web Inspector: Assertion failed: !this._items.has(item) (at Collection.js:50)
https://bugs.webkit.org/show_bug.cgi?id=168212
Reviewed by Joseph Pecoraro.
When turning on DebugUI, WebKit-internal scripts were being added to the
Collection that is the represented object for the Extra Scripts folder.
This was not balanced out by removing the scripts when DebugUI is turned
off, so switching DebugUI on and off several times hit a multiple-add assertion.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasRemoved):
Remove the script from its Collection if applicable.
2017-02-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Debugger sidebar panel should not have multiple tree selections
https://bugs.webkit.org/show_bug.cgi?id=166000
<rdar://problem/29721988>
Reviewed by Timothy Hatcher.
The method for synchronizing tree element selection across a sidebar's
tree outlines fails for selections made during startup, because it depends
on events which are being suppressed.
This adds a new class, TreeOutlineGroup, which restricts tree element selection
inside a group of tree outlines by receiving messages directly from TreeElement.
* UserInterface/Main.html:
Add file for TreeOutlineGroup class.
* UserInterface/Views/ContentBrowserTabContentView.js:
(WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
(WebInspector.ContentBrowserTabContentView):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Update `createContentTreeOutline` calls for new signature.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel):
Replace _visibleContentTreeOutlines with a TreeOutlineGroup, which
contains the single-selection behavior previously handled by the sidebar.
(WebInspector.NavigationSidebarPanel.prototype.get contentTreeOutlines):
(WebInspector.NavigationSidebarPanel.prototype.get hasSelectedElement):
Implement using the sidebar's tree outline group.
(WebInspector.NavigationSidebarPanel.prototype.createContentTreeOutline):
Remove first parameter, which is always true.
(WebInspector.NavigationSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie):
(WebInspector.NavigationSidebarPanel.prototype.pruneStaleResourceTreeElements):
(WebInspector.NavigationSidebarPanel.prototype._checkForEmptyFilterResults):
(WebInspector.NavigationSidebarPanel.prototype._updateFilter):
(WebInspector.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie):
(WebInspector.NavigationSidebarPanel.prototype.set contentTreeOutline): Deleted.
Remove unused setter.
(WebInspector.NavigationSidebarPanel.prototype.get visibleContentTreeOutlines): Deleted.
Renamed to contentTreeOutlines.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineDidFocus): Deleted.
No longer needed.
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange): Deleted.
Selection across trees handled by the tree outline group.
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.select):
Inform the element's tree outline group (if any), of the selection changed.
* UserInterface/Views/TreeOutlineGroup.js: Added.
(WebInspector.TreeOutlineGroup):
(WebInspector.TreeOutlineGroup.groupForTreeOutline):
(WebInspector.TreeOutlineGroup.prototype.get selectedTreeElement):
(WebInspector.TreeOutlineGroup.prototype.itemAdded):
Associate tree outline with the group and wrap tree elements. If the
incoming tree outline has a selection, deselect the group's currently
selected tree element.
(WebInspector.TreeOutlineGroup.prototype.itemRemoved):
Disassociate the tree outline from the group.
(WebInspector.TreeOutlineGroup.prototype.didSelectTreeElement):
Called by TreeElement when it becomes selected.
(WebInspector.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
Deselect any selected items in all tree outlines belonging to the group,
except for the specified item.
2017-02-10 Matt Baker <mattbaker@apple.com>
Web Inspector: ContentViewContainer can have redundant back-forward entries after ContentView close
https://bugs.webkit.org/show_bug.cgi?id=168105
Reviewed by Joseph Pecoraro.
* UserInterface/Models/BackForwardEntry.js:
(WebInspector.BackForwardEntry.prototype.isEqual):
Make check for equal ContentView/cookie reusable.
* UserInterface/Views/ContentViewContainer.js:
(WebInspector.ContentViewContainer.prototype.showContentView):
Use BackForwardEntry.prototype.isEqual.
(WebInspector.ContentViewContainer.prototype.replaceContentView):
(WebInspector.ContentViewContainer.prototype.closeContentView):
Clean-up the BackForwardEntry list after changes that can cause
identical entries to become adjacent.
(WebInspector.ContentViewContainer.prototype._removeIdenticalAdjacentBackForwardEntries):
Remove consecutive entries with the same ContentView and cookie.
(WebInspector.ContentViewContainer):
(WebInspector.ContentViewContainer.closeAllContentViewsOfPrototype): Deleted.
Drive-by cleanup: removed dead code.
2017-02-10 Matt Baker <mattbaker@apple.com>
REGRESSION (r211829): Web Inspector: Elements tab is blank when added after page load
https://bugs.webkit.org/show_bug.cgi?id=168142
Reviewed by Brian Burg.
The Elements tab can be shown in two ways: by adding the Elements tab
from the "New Tab" tab, or via Inspect Element. In both cases we should
be checking that the ContentView exists, and create it if needed.
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView.prototype.showRepresentedObject):
(WebInspector.ElementsTabContentView.prototype.shown):
2017-02-09 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: changing dock side from windowed to bottom should cause split console to collapse on Timeline and Network tabs
https://bugs.webkit.org/show_bug.cgi?id=167841
Reviewed by Matt Baker.
* UserInterface/Base/Main.js:
(WebInspector.updateDockedState):
2017-02-09 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Option+hover on -webkit-transform in Styles sidebar underlines only half the property
https://bugs.webkit.org/show_bug.cgi?id=167949
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._updateHoveredTokenInfo):
Attempt to merge tokens (specifically the `text` and `start` values) if the either the
previous or next token is of the type "meta".
2017-02-09 Eric Carlson <eric.carlson@apple.com>
[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016
Reviewed by Youenn Fablet.
* UserInterface/Models/NativeFunctionParameters.js:
2017-02-08 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r211912.
https://bugs.webkit.org/show_bug.cgi?id=168034
http/tests/media/media-stream/disconnected-frame-permission-
denied.html should be updated (Requested by youenn on
#webkit).
Reverted changeset:
"[MediaStream] Remove legacy Navigator.webkitGetUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=168016
http://trac.webkit.org/changeset/211912
2017-02-08 Eric Carlson <eric.carlson@apple.com>
[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016
Reviewed by Youenn Fablet.
* UserInterface/Models/NativeFunctionParameters.js:
2017-02-08 Chris Dumez <cdumez@apple.com>
Unreviewed, rolling out r211907.
Broke the build
Reverted changeset:
"[MediaStream] Remove legacy Navigator.webkitGetUserMedia"
https://bugs.webkit.org/show_bug.cgi?id=168016
http://trac.webkit.org/changeset/211907
2017-02-08 Eric Carlson <eric.carlson@apple.com>
[MediaStream] Remove legacy Navigator.webkitGetUserMedia
https://bugs.webkit.org/show_bug.cgi?id=168016
Reviewed by Youenn Fablet.
* UserInterface/Models/NativeFunctionParameters.js:
2017-02-07 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: gradient editor should allow switching the units of the 'angle' parameter
https://bugs.webkit.org/show_bug.cgi?id=166938
Reviewed by Brian Burg.
* UserInterface/Test.html:
Add WebInspector.Gradient for new model object tests.
* UserInterface/Models/Gradient.js:
(WebInspector.Gradient.fromString):
(WebInspector.LinearGradient):
(WebInspector.LinearGradient.fromComponents):
(WebInspector.LinearGradient.prototype.set angleValue):
(WebInspector.LinearGradient.prototype.get angleValue):
(WebInspector.LinearGradient.prototype.set angleUnits):
(WebInspector.LinearGradient.prototype.get angleUnits):
(WebInspector.LinearGradient.prototype.copy):
(WebInspector.LinearGradient.prototype.toString):
(WebInspector.LinearGradient.prototype._angleValueForUnits):
Rework part of WebInspector.LinearGradient to support units other than "deg".
* UserInterface/Views/GradientEditor.css:
(.gradient-editor > .gradient-angle > input[type="range"]):
(.gradient-editor > .gradient-angle > input[type="number"]):
* UserInterface/Views/GradientEditor.js:
(WebInspector.GradientEditor):
(WebInspector.GradientEditor.prototype.set gradient):
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
(WebInspector.GradientEditor.prototype._angleValueChanged):
(WebInspector.GradientEditor.prototype._angleUnitsChanged):
(WebInspector.GradientEditor.prototype._angleChanged): Deleted.
Add <select> for each unit type that will change the units of the gradient.
2017-02-07 Matt Baker <mattbaker@apple.com>
Web Inspector: DOMTreeOutline becomes collapsed after switching back to Elements tab
https://bugs.webkit.org/show_bug.cgi?id=167924
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline.prototype.update):
Drive-by fix: move variable initialization below the early return.
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView.prototype.shown): Deleted.
Calling this._showDOMTreeContentView isn't necessary. The base class
implementation will call `shown` on the content view.
2017-02-06 Fujii Hironori <Hironori.Fujii@sony.com>
Web Inspector: sibling elements's disclosure triangles aren't vertically aligned in DOM tree outline in certain ports
https://bugs.webkit.org/show_bug.cgi?id=167568
Reviewed by Brian Burg.
The triangle has 13px height and has float:left. If the line-height
is smaller than 13px, the sibling element's triangles aren't
vertically aligned.
* UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom li.parent): Set line-height 13px explicitly.
2017-02-03 Matt Baker <mattbaker@apple.com>
Web Inspector: Add stroke-linecap property values to CSS autocompletion
https://bugs.webkit.org/show_bug.cgi?id=167778
Reviewed by Joseph Pecoraro.
* UserInterface/Models/CSSKeywordCompletions.js:
Add autocompletion values for fill-rule and stroke-linecap.
2017-02-02 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: can't jump from Search Tab result to see resource in other tabs (Resource, Debugger, Network)
https://bugs.webkit.org/show_bug.cgi?id=167072
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.tabContentViewForRepresentedObject):
(WebInspector.showRepresentedObject):
(WebInspector.showMainFrameDOMTree):
(WebInspector.showSourceCodeForFrame):
(WebInspector.showSourceCode):
(WebInspector.showSourceCodeLocation):
(WebInspector.showOriginalUnformattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeLocation):
(WebInspector.showOriginalOrFormattedSourceCodeTextRange):
(WebInspector.showResourceRequest):
Rework parameters to add optional `options` dictionary that can be used to indicate
additional functionality.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
Ignore instances of SearchTabContentView as it can display content views for all types of
searchable data. Determined by a newly added optional `options` parameter.
* UserInterface/Base/Utilities.js:
(Object.shallowMerge):
Merges the keys of two objects into a new one.
* UserInterface/Views/ComputedStyleDetailsPanel.js:
(WebInspector.ComputedStyleDetailsPanel.prototype._goToRegionFlowArrowWasClicked):
(WebInspector.ComputedStyleDetailsPanel.prototype._goToContentFlowArrowWasClicked):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch.createTreeElementForMatchObject):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourceCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domSearchResults):
(WebInspector.SearchSidebarPanel.prototype.performSearch.domCallback):
(WebInspector.SearchSidebarPanel.prototype.performSearch):
(WebInspector.SearchSidebarPanel.prototype._treeElementDoubleClick):
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.treeElementDoubleClicked):
Add an event dispatch whenever a TreeElement is double clicked via the `dblclick` event.
2017-02-01 Yusuke Suzuki <utatane.tea@gmail.com>
Web Inspector: Upgrade Esprima to the latest one to support dynamic import
https://bugs.webkit.org/show_bug.cgi?id=167698
Reviewed by Joseph Pecoraro.
* UserInterface/External/Esprima/esprima.js:
Update to Esprima@5307e30 (4.0.0-dev).
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration.gatherIdentifiers):
(WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
(WebInspector.ScriptSyntaxTree):
* UserInterface/Workers/Formatter/ESTreeWalker.js:
(ESTreeWalker.prototype._walkChildren):
(ESTreeWalker):
Add new nodes, SpreadProperty, RestProperty, and Import.
SpreadProperty and RestProperty are the part of ES2018 rest and spread properties.
https://github.com/sebmarkbage/ecmascript-rest-spread
Import is dynamic import node. The syntax is similar to Super.
https://github.com/tc39/proposal-dynamic-import
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
2017-02-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove keyboard shortcut to close tab - does not match expectations
https://bugs.webkit.org/show_bug.cgi?id=167672
Reviewed by Timothy Hatcher.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
2017-01-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Tooltip text should not end in a period
https://bugs.webkit.org/show_bug.cgi?id=167130
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/BezierEditor.js:
(WebInspector.BezierEditor):
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
* UserInterface/Views/GeneralTabBarItem.js:
(WebInspector.GeneralTabBarItem):
* UserInterface/Views/HeapSnapshotContentView.js:
(WebInspector.HeapSnapshotInstancesContentView):
(WebInspector.HeapSnapshotObjectGraphContentView):
* UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch):
* UserInterface/Views/ObjectTreePropertyTreeElement.js:
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
(WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
* UserInterface/Views/ObjectTreeView.js:
(WebInspector.ObjectTreeView.prototype._updateEntries):
(WebInspector.ObjectTreeView.prototype._updateProperties):
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
* UserInterface/Views/SpringEditor.js:
(WebInspector.SpringEditor):
* UserInterface/Views/TypeTreeElement.js:
(WebInspector.TypeTreeElement.prototype.onpopulate):
* UserInterface/Views/TypeTreeView.js:
(WebInspector.TypeTreeView.prototype._populate):
* UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
(WebInspector.VisualStyleCommaSeparatedKeywordEditor):
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype._generateSection.createOptionsElement):
* UserInterface/Views/VisualStylePropertyEditorLink.js:
(WebInspector.VisualStylePropertyEditorLink.prototype.set linked):
* UserInterface/Views/VisualStylePropertyNameInput.js:
(WebInspector.VisualStylePropertyNameInput):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateCheckboxTitle):
(WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
2017-01-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: add CSS color keyword entries for all grey/gray variations
https://bugs.webkit.org/show_bug.cgi?id=167668
Reviewed by Matt Baker.
* UserInterface/Models/Color.js:
(WebInspector.Color.Keywords):
2017-01-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Network tab: provide a way to preserve log on navigation
https://bugs.webkit.org/show_bug.cgi?id=166908
Reviewed by Matt Baker.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
(WebInspector.settings):
Add clearNetworkOnNavigate global setting.
* UserInterface/Views/NetworkGridContentView.css:
(.content-view.network-grid > .data-grid .preserved:not(.selected) .cell-content):
(.content-view.network-grid > .data-grid .preserved:not(.selected) .cell-content .timeline-record-bar > .segment):
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype._mainResourceDidChange):
* UserInterface/Views/NetworkSidebarPanel.css:
(.sidebar > .panel.navigation.network .tree-outline > .preserved:not(.selected) > :not(.status)):
(.sidebar > .panel.navigation.network .tree-outline > .preserved:not(.selected) > .icon):
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel):
(WebInspector.NetworkSidebarPanel.prototype._mainResourceDidChange):
Add styling to preserved network records.
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._mainResourceDidChange):
Only reset the persistent network timeline if the clearNetworkOnNavigate setting is true.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView):
Add checkbox and spacers for new setting.
2017-01-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: User Settings: Secondary-clicking the New Tab and Settings tabs should not produce a context menu
https://bugs.webkit.org/show_bug.cgi?id=167651
Reviewed by Joseph Pecoraro.
* UserInterface/Views/PinnedTabBarItem.js:
(WebInspector.PinnedTabBarItem):
(WebInspector.PinnedTabBarItem.prototype._handleContextMenuEvent):
Always preventDefault() to ensure that the system context menu is never shown.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabTabBarItem):
(WebInspector.TabBar.prototype._handleNewTabContextMenu): Deleted.
Move the event dispatch to WebInspector.PinnedTabBarItem to give all instances a contextmenu
event handler.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
2017-01-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Address some ESLint warnings
https://bugs.webkit.org/show_bug.cgi?id=167634
Reviewed by Brian Burg.
* UserInterface/Base/DOMUtilities.js:
(WebInspector.linkifyNodeReference):
(isSimiliarNode):
(WebInspector.xpathIndex):
These empty statements were supposed to be returns!
* UserInterface/Base/Main.js:
* UserInterface/Models/CSSProperty.js:
(WebInspector.CSSProperty.prototype.get relatedLonghandProperties):
* UserInterface/Models/DOMNode.js:
* UserInterface/Protocol/Connection.js:
(InspectorBackend.Connection):
(InspectorBackend.MainConnection):
(InspectorBackend.WorkerConnection):
* UserInterface/Protocol/MainTarget.js:
(WebInspector.MainTarget):
* UserInterface/Protocol/WorkerTarget.js:
(WebInspector.WorkerTarget):
* UserInterface/Test/Test.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
* UserInterface/Views/ConsoleSession.js:
(WebInspector.ConsoleSession):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView.prototype._toggleTypeAnnotations):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._createControlFlowScrollEventHandler):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype._toggleTypeAnnotations):
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
Address pedantic warnings for consistent style.
2017-01-30 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: "bouncy highlight" element in TextEditor/DOMTreeOutline should update or dismiss when user scrolls
https://bugs.webkit.org/show_bug.cgi?id=167146
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._revealSearchResult.scrollHandler):
(WebInspector.TextEditor.prototype._revealSearchResult.animationEnded):
(WebInspector.TextEditor.prototype._revealSearchResult):
2017-01-30 Joseph Pecoraro <pecoraro@apple.com>
Implement PerformanceObserver
https://bugs.webkit.org/show_bug.cgi?id=167546
<rdar://problem/30247959>
Reviewed by Ryosuke Niwa.
* UserInterface/Models/NativeFunctionParameters.js:
Improve API view display of built-in performance methods.
2017-01-30 Matt Baker <mattbaker@apple.com>
Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
https://bugs.webkit.org/show_bug.cgi?id=165633
<rdar://problem/29738502>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
Text for "Truncated" marker tree element.
* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.prototype.get truncated):
Plumbing for new Console.StackTrace property `truncated`.
* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread + ol > .item.truncated-call-frames):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
Styles for "Truncated" marker tree element.
* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Append "Truncated" marker tree element if necessary.
* Versions/Inspector-iOS-10.3.json:
2017-01-30 Ryan Haddad <ryanhaddad@apple.com>
Unreviewed, rolling out r211345.
The LayoutTest for this change is failing an assertion.
Reverted changeset:
"Web Inspector: Need some limit on Async Call Stacks for async
loops (rAF loops)"
https://bugs.webkit.org/show_bug.cgi?id=165633
http://trac.webkit.org/changeset/211345
2017-01-28 Matt Baker <mattbaker@apple.com>
Web Inspector: Need some limit on Async Call Stacks for async loops (rAF loops)
https://bugs.webkit.org/show_bug.cgi?id=165633
<rdar://problem/29738502>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
Text for "Truncated" marker tree element.
* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace):
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.prototype.get truncated):
Plumbing for new Console.StackTrace property `truncated`.
* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread + ol > .item.truncated-call-frames):
(.tree-outline > .item.thread + ol > .item.truncated-call-frames .icon):
Styles for "Truncated" marker tree element.
* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Append "Truncated" marker tree element if necessary.
* Versions/Inspector-iOS-10.3.json:
2017-01-27 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: gradient editor should provide horizontal slider for 'angle' value where applicable
https://bugs.webkit.org/show_bug.cgi?id=166937
Reviewed by Joseph Pecoraro.
* UserInterface/Views/GradientEditor.css:
(.gradient-editor):
(.gradient-editor > .gradient-angle):
(.gradient-editor > .gradient-angle > input[type="range"]):
(.gradient-editor > .gradient-angle > input[type="number"]):
(.gradient-editor > .gradient-angle > input::-webkit-inner-spin-button):
(.gradient-editor > .gradient-angle > input): Deleted.
* UserInterface/Views/GradientEditor.js:
(WebInspector.GradientEditor):
(WebInspector.GradientEditor.prototype.set gradient):
(WebInspector.GradientEditor.prototype.gradientSliderStopWasSelected):
(WebInspector.GradientEditor.prototype._gradientTypeChanged):
(WebInspector.GradientEditor.prototype._angleChanged):
(WebInspector.GradientEditor.prototype.dragToAdjustControllerWasAdjustedByAmount): Deleted.
(WebInspector.GradientEditor.prototype._angleInputValueDidChange): Deleted.
Remove the DragToAdjustController and replace with an <input type="range">.
2017-01-23 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Provide a way to trigger a Garbage Collection
https://bugs.webkit.org/show_bug.cgi?id=167345
<rdar://problem/30102853>
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
New "Garbage collect" tooltip.
* Versions/Inspector-iOS-10.3.json:
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
Update 10.3 so it generates its list of supported domains for workers.
Note that the Heap domain is not be available in this backend but it is now.
* UserInterface/Protocol/Connection.js:
(InspectorBackend.WorkerConnection):
* UserInterface/Protocol/HeapObserver.js:
(WebInspector.HeapObserver.prototype.garbageCollected):
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.get workerSupportedDomains):
(InspectorBackendClass.prototype.workerSupportedDomain):
* UserInterface/Images/NavigationItemClear.svg: Added.
* UserInterface/Images/NavigationItemGarbageCollect.svg: Added.
New image for Garbage Collection. Better image for clearing.
* UserInterface/Images/gtk/NavigationItemClear.svg: Added.
Copy the Trash icon for Clear for gtk.
* UserInterface/Protocol/Target.js:
(WebInspector.Target.prototype.get HeapAgent):
* UserInterface/Protocol/WorkerTarget.js:
(WebInspector.WorkerTarget):
Include Heap agent for Workers.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get navigationItems):
(WebInspector.LogContentView.prototype._garbageCollect):
Add garbage collect button which triggers gc on all capable targets.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView):
Update the Clear icon to an improved icon.
* UserInterface/Controllers/HeapManager.js:
(WebInspector.HeapManager.prototype.garbageCollected):
Timelines only shows Main Target events, do not show GC events for Workers.
2017-01-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: long press on New Tab Tab Item should show context menu with recently closed tabs that are still closed
https://bugs.webkit.org/show_bug.cgi?id=166901
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar.Event):
(WebInspector.TabBar.prototype._handleNewTabContextMenu):
Add listener dispatch for contextmenu event on New Tab tab item.
(WebInspector.TabBar.prototype.get newTabTabBarItem): Deleted.
Unused.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._tabBarItemAdded):
(WebInspector.TabBrowser.prototype._tabBarItemRemoved):
(WebInspector.TabBrowser.prototype._handleNewTabContextMenu): Added.
Create an array that keeps track of tabs as they are closed, and populate the contextmenu
of the New Tab tab item with entries for each of these tabs.
2017-01-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: tree elements with depth > 1 should have context menu "expand all"/"collapse all" commands
https://bugs.webkit.org/show_bug.cgi?id=135590
Reviewed by Timothy Hatcher.
Rework the context menu event handlers for all TreeOutline and TreeElement instances such
that the TreeOutline handles the event listener and creates the context menu object and the
TreeElement populates the list with items. This is necessary due to the way in which
children are laid out, as there is padding on either side of the element that would not
trigger a context menu event.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.ondetach):
(WebInspector.BreakpointTreeElement.prototype.populateContextMenu):
(WebInspector.BreakpointTreeElement.prototype.oncontextmenu): Deleted.
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
* UserInterface/Views/DOMTreeOutline.js:
(WebInspector.DOMTreeOutline):
(WebInspector.DOMTreeOutline.prototype.populateContextMenu):
(WebInspector.DOMTreeOutline.prototype._onmousedown):
(WebInspector.DOMTreeOutline.prototype._onmousemove):
(WebInspector.DOMTreeOutline.prototype._ondragstart):
(WebInspector.DOMTreeOutline.prototype._ondragover):
(WebInspector.DOMTreeOutline.prototype._ondrop):
(WebInspector.DOMTreeOutline.prototype._treeElementFromEvent): Deleted.
(WebInspector.DOMTreeOutline.prototype._contextMenuEventFired): Deleted.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineContextMenuTreeElement):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement.prototype.onattach):
* UserInterface/Views/GeneralTreeElement.js:
(WebInspector.GeneralTreeElement.prototype.onattach):
(WebInspector.GeneralTreeElement.prototype.ondetach): Deleted.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype.populateContextMenu):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logSymbolProperty):
(WebInspector.ObjectTreeBaseTreeElement.prototype._logValue):
(WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu): Deleted.
(WebInspector.ObjectTreeBaseTreeElement.prototype._contextMenuHandler): Deleted.
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype.populateContextMenu):
(WebInspector.ResourceTreeElement.prototype.onattach): Deleted.
(WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent): Deleted.
* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.populateContextMenu):
(WebInspector.ThreadTreeElement.prototype.oncontextmenu): Deleted.
* UserInterface/Views/TreeElement.js:
(WebInspector.TreeElement.prototype.populateContextMenu):
(WebInspector.TreeElement):
* UserInterface/Views/TreeOutline.js:
(WebInspector.TreeOutline):
(WebInspector.TreeOutline.prototype.treeElementFromEvent):
(WebInspector.TreeOutline.prototype.populateContextMenu):
(WebInspector.TreeOutline._generateStyleRulesIfNeeded):
* UserInterface/Views/VisualStyleSelectorTreeItem.js:
(WebInspector.VisualStyleSelectorTreeItem.prototype.onattach):
(WebInspector.VisualStyleSelectorTreeItem.prototype.populateContextMenu):
(WebInspector.VisualStyleSelectorTreeItem.prototype._highlightNodesWithSelector):
(WebInspector.VisualStyleSelectorTreeItem.prototype._hideDOMNodeHighlight):
(WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent): Deleted.
* UserInterface/Views/WorkerTreeElement.js:
(WebInspector.WorkerTreeElement.prototype.populateContextMenu):
(WebInspector.WorkerTreeElement.prototype.onattach):
(WebInspector.WorkerTreeElement.prototype._handleContextMenuEvent): Deleted.
* UserInterface/Views/DataGrid.js:
(WebInspector.DataGrid.prototype._contextMenuInDataTable):
Add "Expand All"/"Collapse All" context menu items.
2017-01-23 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: color picker should feature an editable CSS value
https://bugs.webkit.org/show_bug.cgi?id=124356
Reviewed by Timothy Hatcher.
* UserInterface/Views/ColorPicker.css:
(.color-picker):
(.color-picker.hide-inputs):
(.color-picker > .color-inputs):
(.color-picker > .color-inputs > div):
(.color-picker > .color-inputs > div[hidden]):
(.color-picker > .color-inputs input):
* UserInterface/Views/ColorPicker.js:
(WebInspector.ColorPicker.createColorInput):
(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.set color):
(WebInspector.ColorPicker.prototype.set enableColorComponentInputs):
(WebInspector.ColorPicker.prototype._updateColor):
(WebInspector.ColorPicker.prototype._handleFormatChange):
(WebInspector.ColorPicker.prototype._showColorComponentInputs.updateColorInput):
(WebInspector.ColorPicker.prototype._showColorComponentInputs):
(WebInspector.ColorPicker.prototype._handleColorInputInput):
Add an input element (with a label for the component name and its units) for each component
as part of the current color format (e.g. R, G, B, A). If any of these inputs are changed
then the color is also changed and the "ColorChanged" event is fired.
* UserInterface/Controllers/CodeMirrorColorEditingController.js:
(WebInspector.CodeMirrorColorEditingController.prototype.popoverWillPresent):
* UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Add FormatChanged event that fires whenever a new color is set with a different format or
the color value is set for the first time (there is no old format to compare to). This is
needed because if the format becomes RGB, RGBA, HSL, or HSLA from something not in that list
then the size of the containing popover needs to change since the newly added color inputs
will be displayed.
* UserInterface/Views/GradientEditor.js:
(WebInspector.GradientEditor):
Prevent the color inputs from displaying at all, since there aren't individual swatches for
each color in a gradient.
2017-01-20 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Search Tab should display search results immediately when closing and reopening Inspector
https://bugs.webkit.org/show_bug.cgi?id=167073
Reviewed by Timothy Hatcher.
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.focusSearchField):
Add parameter that will trigger a search with the current input value when true.
* UserInterface/Views/SearchTabContentView.js:
(WebInspector.SearchTabContentView):
(WebInspector.SearchTabContentView.prototype.focusSearchField):
(WebInspector.SearchTabContentView.prototype.initialLayout):
2017-01-19 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Network Tab's "Clear Network Items" button should have keyboard shortcuts
https://bugs.webkit.org/show_bug.cgi?id=166943
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._clear):
Move clear keyboard shortcut to main object and call _handleClearShortcut on the visible
content view if able.
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController):
(WebInspector.JavaScriptLogViewController.prototype.requestClearMessages):
(WebInspector.JavaScriptLogViewController.prototype._handleClearShortcut): Deleted.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.handleClearShortcut):
Move logic for requesting to clear messages from the LogManager to a better named function.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
(WebInspector.NetworkGridContentView.prototype.handleClearShortcut):
2017-01-19 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Dashboard's log/error/warning help tag says "click to show the Console" even when clicking does nothing
https://bugs.webkit.org/show_bug.cgi?id=167102
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.showConsoleTab):
Don't revert to the All scopes if the requested scope is already selected.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DefaultDashboardView.js:
(WebInspector.DefaultDashboardView):
(WebInspector.DefaultDashboardView.prototype._appendElementForNamedItem):
(WebInspector.DefaultDashboardView.prototype._setItemEnabled):
Only apply a title to the element when it is enabled.
2017-01-18 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: split console should be allowed for Network and Timeline tabs when Inspector is not docked
https://bugs.webkit.org/show_bug.cgi?id=167075
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.dockedConfigurationSupportsSplitContentBrowser):
Helper function to determine if the current docked state supports having the content view
and split console at the same time. Currently set to be true if not docked bottom.
* UserInterface/Views/ClusterContentView.js:
(WebInspector.ClusterContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/NetworkTabContentView.js:
(WebInspector.NetworkTabContentView.prototype.get supportsSplitContentBrowser):
* UserInterface/Views/TimelineTabContentView.js:
(WebInspector.TimelineTabContentView.prototype.get supportsSplitContentBrowser): Deleted.
Update supportsSplitContentBrowser functions to only be true/false based on the return value
of WebInspector.dockedConfigurationSupportsSplitContentBrowser.
2017-01-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: console.table only works for the first 5 properties
https://bugs.webkit.org/show_bug.cgi?id=167175
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameterAsTable):
Allow a max of 15 columns instead of 10.
2017-01-16 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: add "Persist Logs on Navigation" to settings screen
https://bugs.webkit.org/show_bug.cgi?id=166992
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Setting.js:
* 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._toggleClearLogOnNavigateSetting):
Move setting and UI toggle for "Keep Log on Navigation" to the global settings dictionary
and content view.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView):
Add checkbox for new setting and spacer between text settings and log settings.
2017-01-16 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: add UI Zoom level to Settings screen
https://bugs.webkit.org/show_bug.cgi?id=166991
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector._dockedResizerMouseDown):
(WebInspector._increaseZoom):
(WebInspector._decreaseZoom):
(WebInspector._resetZoom):
(WebInspector.getZoomFactor): Renamed from _zoomFactor.
(WebInspector.setZoomFactor): Renamed from _setZoomFactor.
* UserInterface/Base/Setting.js:
(WebInspector.settings):
Moved zoomFactor setting to global dictionary.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
Add UI input for changing zoomFactor.
2017-01-14 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Cmd-, should open Settings tab
https://bugs.webkit.org/show_bug.cgi?id=167028
Reviewed by Timothy Hatcher.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
(WebInspector._showSettingsTab): Added.
2017-01-13 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Settings tab is restored when reopening inspector
https://bugs.webkit.org/show_bug.cgi?id=167025
Reviewed by Matt Baker.
* UserInterface/Base/Main.js:
(WebInspector._tabBrowserSelectedTabContentViewDidChange):
Only save the selectedTabIndex if the current tab should be saved and reloaded upon opening
the WebInspector window.
2017-01-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Resources disappear from the network tab when iframe gets removed from DOM
https://bugs.webkit.org/show_bug.cgi?id=166776
<rdar://problem/29909640>
Reviewed by Matt Baker.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel):
Don't remove resource tree elements from Network tab when iframe gets detached from the DOM.
2017-01-13 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: the 'lock' icon for non-editable rules in the Style Rules sidebar lacks a tooltip
https://bugs.webkit.org/show_bug.cgi?id=166909
<rdar://problem/29959406>
Reviewed by Matt Baker.
Convert the lock icon from a pseudo-element to an 'img' element and add a title attribute.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section.locked > .header > .locked-icon):
(.style-declaration-section.locked > .header::before): Deleted.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
2017-01-12 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r209711): Web Inspector: in Elements Tab, selecting a deeply nested DOM element causes navigation bar buttons to be pushed off the leading edge
https://bugs.webkit.org/show_bug.cgi?id=166898
<rdar://problem/29951737>
Reviewed by Timothy Hatcher.
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):
The following operations do NOT produce the same result:
classList.toogle(aString, undefined)
classList.toogle(aString, false)
The former is an equivalent of classList.toogle(aString), e.g. it set a class if it wasn't set before.
2017-01-12 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: cubic-bezier editor behaves poorly for invalid inputs in component fields
https://bugs.webkit.org/show_bug.cgi?id=166928
Reviewed by Brian Burg.
* UserInterface/Views/BezierEditor.css:
(.bezier-editor):
(.bezier-editor > .number-input-container > input):
* UserInterface/Views/BezierEditor.js:
(WebInspector.BezierEditor.createBezierInput):
(WebInspector.BezierEditor):
Add type, step, min, and max to the bezier component inputs to better control user input.
2017-01-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add another Protocol Version
https://bugs.webkit.org/show_bug.cgi?id=166953
<rdar://problem/29980631>
Reviewed by Timothy Hatcher.
* UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: Added.
* Versions/Inspector-iOS-10.3.json: Added.
2017-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: spring function editor has unusual layout, should have left-aligned labels and slider tracks
https://bugs.webkit.org/show_bug.cgi?id=166933
Reviewed by Brian Burg.
* UserInterface/Views/Main.css:
(input[type=range]::-webkit-slider-thumb):
(input[type=range]::-webkit-slider-runnable-track):
(input[type=range]::-webkit-slider-runnable-track::before): Deleted.
Fix slider styles.
* UserInterface/Views/SpringEditor.css:
(.spring-editor):
(.spring-editor > .spring-preview):
(.spring-editor > .spring-timing):
(.spring-editor > .number-input-container > .number-input-row > .number-input-row-title):
(.spring-editor > .number-input-container > .number-input-row > input):
(.spring-editor > .number-input-container > .number-input-row > input::-webkit-inner-spin-button):
(.spring-editor > .number-input-container > .number-input-row > input[type="range"]):
Decrease spacing and left-align text.
* UserInterface/Views/SpringEditor.js:
(WebInspector.SpringEditor.prototype._handleNumberInputKeydown):
(WebInspector.SpringEditor.prototype._changeSpringForInput):
Only update editor values when the new value of any input has changed. This allows users to
enter decimal values ("." was being stripped by `parseFloat`).
2017-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: color, gradient, cubic-bezier, spring editors should be dismissable using ESC
https://bugs.webkit.org/show_bug.cgi?id=166934
Reviewed by Brian Burg.
* UserInterface/Views/Popover.js:
(WebInspector.Popover):
(WebInspector.Popover.prototype.dismiss):
(WebInspector.Popover.prototype.handleEvent):
(WebInspector.Popover.prototype._addListenersIfNeeded):
Adds a keydown listener while visible for the Escape key that dismisses the popover.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole.prototype.set keyboardShortcutDisabled):
Expose the ability to disable the global keyboard shortcut. This allows the Popover to have
its own Escape keyboard shortcut to take precedence.
2017-01-11 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: fix UIString for Print Styles button
https://bugs.webkit.org/show_bug.cgi?id=166892
Reviewed by Brian Burg.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
Changed UIString to better match documentation.
2017-01-09 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r210260.
https://bugs.webkit.org/show_bug.cgi?id=166860
new colorpicker UI doesn't seem to work in trunk,
investigating offline (Requested by brrian on #webkit).
Reverted changeset:
"Web Inspector: color picker should feature an editable CSS
value"
https://bugs.webkit.org/show_bug.cgi?id=124356
http://trac.webkit.org/changeset/210260
2017-01-06 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r210110.
https://bugs.webkit.org/show_bug.cgi?id=166783
Introduced a regression commenting out individual properties
(Requested by JoePeck on #webkit).
Reverted changeset:
"Web Inspector: Styles sidebar: Uncommenting CSS rules of
pseudo-elements doesn't work"
https://bugs.webkit.org/show_bug.cgi?id=165831
http://trac.webkit.org/changeset/210110
2017-01-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused delegate from VisualStyleSelectorSection
https://bugs.webkit.org/show_bug.cgi?id=166744
Reviewed by Alex Christensen.
* UserInterface/Views/VisualStyleDetailsPanel.js:
(WebInspector.VisualStyleDetailsPanel.prototype.initialLayout):
* UserInterface/Views/VisualStyleSelectorSection.js:
(WebInspector.VisualStyleSelectorSection):
2017-01-04 Brian Burg <bburg@apple.com>
Web Inspector: Test.html should support globals reportInternalError, reportUnhandledRejection, reportUncaughtException
https://bugs.webkit.org/show_bug.cgi?id=161358
<rdar://problem/28066446>
Reviewed by Joseph Pecoraro.
We have a hodgepodge of redundant code that reports uncaught exceptions in the inspector page.
There is better handling of uncaught exceptions in the inspected page, such as including stack traces.
This patch consolidates a lot of this code and makes it possible to report
unhandled promise rejections, top-level uncaught exceptions, and exceptions
caught in a try-catch block. The formatting and sanitization code for all of
these things is shared and consistent. Finally, some tests have been added to
catch regressions in unhandled rejection/uncaught exception reporting.
* UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness): Explicitly set initial flag state here so it's easy to find all flags.
(FrontendTestHarness.prototype.redirectConsoleToTestOutput):
Extract this code to sanitize stack frames and put it in TestHarness. It is used
by other methods that need to print stack frames.
(FrontendTestHarness.prototype.reportUnhandledRejection):
(FrontendTestHarness.prototype.reportUncaughtException):
Added. Sanitize stack trace data so it is deterministic. Log the message to the
original window.console but don't exit early. Sometimes the test page is not
fully loaded if we throw an exception quite early in the test() method, and there's
no harm in not early returning. If we do early return in this case, then a test that
uses reportUncaughtException on purpose may not complete because the call to completeTest()
would be skipped by returning early.
(FrontendTestHarness.prototype.reportUncaughtExceptionFromEvent):
Renamed from reportUncaughtException since the signature of that method suggests
it should have a single exception argument rather than lots of data arguments.
* UserInterface/Test/Test.js: Add globals.
* UserInterface/Test/TestHarness.js:
(TestHarness): Document class flags.
(TestHarness.sanitizeURL):
(TestHarness.sanitizeStackFrame):
(TestHarness.prototype.sanitizeStack):
Extract this code from other parts of the test harness. Make sanitizeStack
an instance method so that there is only one place that needs to check the
'suppressStackTraces' flag.
* UserInterface/Test/TestSuite.js:
(TestSuite.prototype.logThrownObject):
(TestSuite):
(AsyncTestSuite.prototype.runTestCases):
(AsyncTestSuite):
(SyncTestSuite.prototype.runTestCases):
(SyncTestSuite):
(TestSuite.messageFromThrownObject): Deleted.
Inline some helpers with only one use-site and consolidate redundant code
for adding an exception and message to the test results.
2017-01-04 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: application cache details not shown in Storage Tab
https://bugs.webkit.org/show_bug.cgi?id=166699
<rdar://problem/29871716>
Reviewed by Brian Burg.
Fix a ternary operator precedence. The following expression throws an exception:
true || false ? i.dont.exist : false
* UserInterface/Views/ApplicationCacheFrameTreeElement.js:
(WebInspector.ApplicationCacheFrameTreeElement.prototype.updateTitles):
2017-01-03 Brian Burg <bburg@apple.com>
Web Inspector: WrappedPromise constructor should behave like the Promise constructor
https://bugs.webkit.org/show_bug.cgi?id=166523
Reviewed by Joseph Pecoraro.
* UserInterface/Models/WrappedPromise.js:
(WebInspector.WrappedPromise):
- Return the result of 'work' from the inner promise
so WrappedPromise.promise can be chained.
- Provide shim resolve, reject callbacks as parameters.
(WebInspector.WrappedPromise.prototype.get settled): Added.
Tells whether we already resolved or rejected the promise.
(WebInspector.WrappedPromise.prototype.resolve):
(WebInspector.WrappedPromise.prototype.reject):
Throw an error if already settled and update the flag.
2017-01-03 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: color picker should feature an editable CSS value
https://bugs.webkit.org/show_bug.cgi?id=124356
Reviewed by Brian Burg.
* UserInterface/Views/ColorPicker.css:
(.color-picker):
(.color-picker > .color-inputs):
(.color-picker > .color-inputs > div):
(.color-picker > .color-inputs > div[hidden]):
(.color-picker > .color-inputs input):
* UserInterface/Views/ColorPicker.js:
(WebInspector.ColorPicker.createColorInput):
(WebInspector.ColorPicker):
(WebInspector.ColorPicker.prototype.set color):
(WebInspector.ColorPicker.prototype.sliderValueDidChange):
(WebInspector.ColorPicker.prototype._updateColor):
(WebInspector.ColorPicker.prototype._showColorComponentInputs.updateColorInput):
(WebInspector.ColorPicker.prototype._showColorComponentInputs):
(WebInspector.ColorPicker.prototype._handleColorInputInput):
Add an input element (with a label for the component name and its units) for each component
as part of the current color format (e.g. R, G, B, A). If any of these inputs are changed
then the color is also changed and the "ColorChanged" event is fired.
2017-01-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: "Invalid Characters" setting does the opposite of the checkbox
https://bugs.webkit.org/show_bug.cgi?id=166664
Reviewed by Brian Burg.
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .cm-invalidchar):
(.show-invalid-characters .CodeMirror .cm-invalidchar):
Hide invalid characters by default, and show them with the show class.
2017-01-03 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Fix Content Flow Container Regions Computed Style section
https://bugs.webkit.org/show_bug.cgi?id=166294
Reviewed by Brian Burg.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._coerceRemoteArrayOfDOMNodes):
(WebInspector.DOMTreeManager.prototype.getNodeContentFlowInfo.domNodeResolved):
(WebInspector.DOMTreeManager.prototype.getNodeContentFlowInfo.remoteObjectPropertiesAvailable):
(WebInspector.DOMTreeManager.prototype.getNodeContentFlowInfo):
(WebInspector.DOMTreeManager.prototype.getNodeContentFlowInfo.backendFunction.getComputedProperty): Deleted.
(WebInspector.DOMTreeManager.prototype.getNodeContentFlowInfo.backendFunction.getContentFlowName): Deleted.
Update this to use Array.from() to convert the NodeList to an Array, and then
use the already available RemoteObject's size property instead of getting the
"length" property from the Array.
2017-01-03 Brian Burg <bburg@apple.com>
Web Inspector: opening Test.html in a normal browser window doesn't log errors to console
https://bugs.webkit.org/show_bug.cgi?id=166570
Reviewed by Joseph Pecoraro.
Early syntax errors in the test harness should be logged to the page console since they are easier to
debug in a normal browser using Web Inspector. But, the checks to revert to normal console don't work.
* UserInterface/Test/FrontendTestHarness.js:
(FrontendTestHarness.prototype.reportUncaughtException):
Add a helper to encapsulate the meaning of checking this._shouldResendResults.
This flag is always true until the test page injects its initializers into the
inspector page, which will never happen when we view Test.html outside of the test harness.
2016-12-22 Commit Queue <commit-queue@webkit.org>
Unreviewed, rolling out r210069.
https://bugs.webkit.org/show_bug.cgi?id=166439
This patch makes all properties in Computed Styles strike-
through when switching from the Rules panel. (Requested by NVI
on #webkit).
Reverted changeset:
"Web Inspector: Uncommenting CSS properties doesn't work for
inline styles"
https://bugs.webkit.org/show_bug.cgi?id=166297
http://trac.webkit.org/changeset/210069
2016-12-22 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Styles sidebar: Uncommenting CSS rules of pseudo-elements doesn't work
https://bugs.webkit.org/show_bug.cgi?id=165831
<rdar://problem/29652688>
Reviewed by Matt Baker.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype.uncommentAllProperties):
Call _resetContent() when toggling all properties to ensure properties have text markers.
(WebInspector.CSSStyleDeclarationTextEditor.prototype._propertyCommentCheckboxChanged):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._uncommentProperty): Added.
This method is the opposite of _commentProperty. Introduce it to minimize code duplication.
2016-12-21 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Uncommenting CSS properties doesn't work for inline styles
https://bugs.webkit.org/show_bug.cgi?id=166297
Reviewed by Brian Burg.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
Update checkboxes for inline styles, too.
2016-12-20 Matt Baker <mattbaker@apple.com>
Web Inspector: Window resize causes TimelineOverview graph elements to be repositioned
https://bugs.webkit.org/show_bug.cgi?id=160207
<rdar://problem/27553228>
Reviewed by Brian Burg.
TimelineRuler does not always update its divider positions when the start
time changes while the end time remains the same. The check that determines
whether the first or last divider positions have changed before doing a
layout uses the ruler end time instead of calculating the last divider's
position, and would falsely determine no change was needed.
* UserInterface/Views/TimelineRuler.js:
(WebInspector.TimelineRuler.prototype.set startTime):
(WebInspector.TimelineRuler.prototype.set secondsPerPixel):
Clear cached divider data on zoom or scroll, forcing dividers to be recalculated.
(WebInspector.TimelineRuler.prototype.layout):
Calculate accurate divider count and last divider time.
2016-12-20 Wenson Hsieh <wenson_hsieh@apple.com>
Update keyword completions in the inspector for the new scroll snapping CSS properties
https://bugs.webkit.org/show_bug.cgi?id=166235
Reviewed by Joseph Pecoraro.
The CSS keyword completions for the scroll snapping properties need to be updated for the latest version of the spec.
* UserInterface/Models/CSSKeywordCompletions.js:
2016-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Console could be made useful for very simple await expressions
https://bugs.webkit.org/show_bug.cgi?id=165681
<rdar://problem/29755339>
Reviewed by Brian Burg.
Normally await expressions are only allowed inside of async functions.
They make dealing with async operations easy, but can't be used directly
in Web Inspector's console without making your own async function wrapper.
This change allows simple await expressions to be run in the console.
The supported syntaxes are (simple expression with optional assignment):
await <expr>
x = await <expr>
let x = await <expr>
Web Inspector's console will automatically wrap this in an async
function and report the resulting value or exception. For instance
in the last example above:
let x;
(async function() {
try {
x = await <expr>;
console.info("%o", x);
} catch (e) {
console.error(e);
}
})();
undefined
This way users can get the convenience of await in the Console.
This also gives users a nice way of extracting a value out of
a Promise without writing their own handlers.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype._tryApplyAwaitConvenience):
Wrap simple await expressions into a function that will log the result.
2016-12-20 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update CodeMirror to support async/await keyword and other ES2017 features
https://bugs.webkit.org/show_bug.cgi?id=165677
Rubber-stamped by Brian Burg.
Update CodeMirror from version 5.5.1 to 5.21.1. Highlights include:
- Syntax highlighting for ES2017 features (async/await)
- Syntax highlighting improvements for some ES6 features (new.target)
- Syntax highlighting for CSS4 #rrggbbaa and #rgba colors
As well as a number of smaller bug fixes.
Had to add a few semicolons to codemirror.js so that our minifier
didn't choke in a few places due to ASI behavior.
* Scripts/update-codemirror-resources.rb:
* UserInterface/External/CodeMirror/LICENSE:
* UserInterface/External/CodeMirror/clojure.js:
* UserInterface/External/CodeMirror/closebrackets.js:
* UserInterface/External/CodeMirror/codemirror.css:
* UserInterface/External/CodeMirror/codemirror.js:
* UserInterface/External/CodeMirror/coffeescript.js:
* UserInterface/External/CodeMirror/comment.js:
* UserInterface/External/CodeMirror/css.js:
* UserInterface/External/CodeMirror/htmlmixed.js:
* UserInterface/External/CodeMirror/javascript.js:
* UserInterface/External/CodeMirror/livescript.js:
* UserInterface/External/CodeMirror/matchbrackets.js:
* UserInterface/External/CodeMirror/overlay.js:
* UserInterface/External/CodeMirror/placeholder.js:
* UserInterface/External/CodeMirror/runmode.js:
* UserInterface/External/CodeMirror/sql.js:
* UserInterface/External/CodeMirror/sublime.js:
* UserInterface/External/CodeMirror/xml.js:
2016-12-19 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Address some assertions and uncaught exceptions seen using Inspector
https://bugs.webkit.org/show_bug.cgi?id=166048
Reviewed by Matt Baker.
* UserInterface/Controllers/CodeMirrorEditingController.js:
(WebInspector.CodeMirrorEditingController.prototype.presentHoverMenu):
(WebInspector.CodeMirrorEditingController.prototype.dismissHoverMenu):
classList throws an exception when given an empty string. Avoid those cases.
* UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
(WebInspector.CodeMirrorTokenTrackingController.prototype._startTracking):
(WebInspector.CodeMirrorTokenTrackingController.prototype._stopTracking):
Seen this assert frequently for a while, existing code handles it gracefully.
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
We correctly handle these tokens but they were not in the list of expected tokens.
2016-12-16 Joseph Pecoraro <pecoraro@apple.com>
JSContext Inspector: Avoid some possible exceptions inspecting a JSContext
https://bugs.webkit.org/show_bug.cgi?id=165986
<rdar://problem/29551379>
Reviewed by Matt Baker.
* UserInterface/Base/Main.js:
There will not be a main frame if we are debugging a JSContext.
In those cases do not change the title.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
There may not be a parent folder in JavaScript inspection. In that case
ScriptTreeElements are added to the Top Level, not folders.
2016-12-16 Matt Baker <mattbaker@apple.com>
Web Inspector: REGRESSION (r209882): Opening find banner in editor causes UI to hang
https://bugs.webkit.org/show_bug.cgi?id=165967
Reviewed by Timothy Hatcher.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype._findBannerDidShow):
Showing the find banner should cause search results to be refreshed only
if it contains query text.
2016-12-16 Matt Baker <mattbaker@apple.com>
Web Inspector: Modernize find banner UI
https://bugs.webkit.org/show_bug.cgi?id=165939
Reviewed by Timothy Hatcher.
The find banner should have a modern appearance, matching Xcode.
* UserInterface/Views/FindBanner.css:
(.find-banner > input[type="search"]):
(.find-banner > button):
Use standard border colors.
(.find-banner > button:disabled > .glyph):
Disabled previous / next glyphs should be lighter.
(.find-banner > button:active:not(:disabled)):
Update depressed button style: flat colors, no text color change.
(.find-banner > button.segmented):
(.find-banner > button.segmented.left):
(.find-banner > button:not(:active).segmented.right:before):
(.find-banner > button.segmented.left:active + button.segmented.right,):
(.find-banner > button.segmented.left:active + button.segmented.right:before):
(.find-banner > button.segmented.right):
(.find-banner.console-find-banner > input[type="search"]):
(.find-banner.console-find-banner > :matches(input[type="search"], button)):
(.find-banner > button:disabled): Deleted.
(.find-banner > button.segmented:active): Deleted.
Overlapping button borders are no longer an issue.
* UserInterface/Views/FindBanner.js:
(WebInspector.FindBanner):
Insert previous / next buttons after the input field in the DOM.
(WebInspector.FindBanner.prototype.get delegate):
(WebInspector.FindBanner.prototype.set delegate):
(WebInspector.FindBanner.prototype.get inputField):
(WebInspector.FindBanner.prototype.get searchQuery):
(WebInspector.FindBanner.prototype.set searchQuery):
(WebInspector.FindBanner.prototype.get numberOfResults):
Inline simple getters and setters.
* UserInterface/Views/Variables.css:
(:root):
Add button colors.
2016-12-15 Matt Baker <mattbaker@apple.com>
Web Inspector: console search bar jumps, behaves poorly at narrow widths
https://bugs.webkit.org/show_bug.cgi?id=164047
<rdar://problem/29055582>
Reviewed by Timothy Hatcher.
At narrow widths the find banner behaves poorly in the split console
toolbar. It should work like the main content browser, appearing below
the toolbar when Command-F is pressed and either the split console or
quick console prompt has the focus.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Enable split content browser find banner.
* UserInterface/Views/ContentBrowser.js:
(WebInspector.ContentBrowser.prototype.showFindBanner):
Check for custom find banner support at runtime.
(WebInspector.ContentBrowser.prototype._findBannerDidShow):
(WebInspector.ContentBrowser.prototype._findBannerDidHide):
Refresh search results when banner is shown/hidden, instead of relying
on toggling the "showing-find-banner" class name for everything.
(WebInspector.ContentBrowser.prototype.handleFindEvent): Deleted.
Renamed `showFindBanner`.
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.prototype.get supportsCustomFindBanner):
(WebInspector.ContentView.prototype.showCustomFindBanner):
Custom find banner support (used by LogContentView).
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView):
(WebInspector.LogContentView.prototype.get supportsSearch):
(WebInspector.LogContentView.prototype.get numberOfSearchResults):
(WebInspector.LogContentView.prototype.get hasPerformedSearch):
Cleanup.
(WebInspector.LogContentView.prototype.get supportsCustomFindBanner):
Use toolbar item find banner when showing Console tab.
(WebInspector.LogContentView.prototype.findBannerRevealPreviousResult):
(WebInspector.LogContentView.prototype.findBannerRevealNextResult):
(WebInspector.LogContentView.prototype._isMessageVisible):
(WebInspector.LogContentView.prototype._visibleMessageElements):
(WebInspector.LogContentView.prototype._logCleared):
(WebInspector.LogContentView.prototype._filterMessageElements):
(WebInspector.LogContentView.prototype.findBannerPerformSearch):
(WebInspector.LogContentView.prototype.findBannerSearchCleared):
(WebInspector.LogContentView.prototype.performSearch):
Support both the standard and custom (toolbar item) find banners.
(WebInspector.LogContentView.prototype.searchCleared):
Refresh search results.
(WebInspector.LogContentView.prototype._highlightRanges):
Correct spelling: _selectedSearchMathIsValid -> _selectedSearchMatchIsValid.
(WebInspector.LogContentView.prototype.get searchInProgress): Deleted.
Override ContentView.prototype.hasPerformedSearch instead.
(WebInspector.LogContentView.prototype.handleFindEvent): Deleted.
Replaced by `showCustomFindBanner`.
(WebInspector.LogContentView.prototype.highlightPreviousSearchMatch): Deleted.
Absorbed by findBannerRevealPreviousResult.
(WebInspector.LogContentView.prototype.highlightNextSearchMatch): Deleted.
Absorbed by findBannerRevealNextResult.
(WebInspector.LogContentView.prototype._performSearch): Deleted.
Override ContentView.prototype.performSearch instead.
* UserInterface/Views/Main.css:
(#split-content-browser > .navigation-bar :matches(.find-banner, .find-banner + .divider)):
Hide the toolbar banner and divider.
2016-12-14 Ryosuke Niwa <rniwa@webkit.org>
Web Inspector: Jumping to the definition of a custom elements is broken
https://bugs.webkit.org/show_bug.cgi?id=165890
Reviewed by Joseph Pecoraro.
Fix the regression from https://trac.webkit.org/changeset/208304.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._showCustomElementDefinition): Use the main target
since a custom element definition can never come from a worker.
2016-12-14 Matt Baker <mattbaker@apple.com>
Web Inspector: Zooming in on the Timeline should always zoom right where the cursor is
https://bugs.webkit.org/show_bug.cgi?id=151118
<rdar://problem/23487912>
Reviewed by Timothy Hatcher.
Use correct left edge for timeline overview graph elements.
* UserInterface/Views/TimelineOverview.js:
(WebInspector.TimelineOverview.prototype._handleWheelEvent):
(WebInspector.TimelineOverview._handleGestureStart):
(WebInspector.TimelineOverview.prototype._handleGestureChange):
2016-12-12 Nikita Vasilyev <nvasilyev@apple.com>
[GTK] Web Inspector: Add NavigationItemCodeCoverage.svg icon
https://bugs.webkit.org/show_bug.cgi?id=165698
Reviewed by Joseph Pecoraro.
* UserInterface/Images/gtk/NavigationItemCodeCoverage.svg: Added.
Match in style the existing NavigationItemTypes.svg icon.
2016-12-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Cleanup HierarchicalPathComponent
https://bugs.webkit.org/show_bug.cgi?id=165745
Reviewed by Brian Burg.
Prefer toggle for style class names, remove single use CSS class name
constants, and back all properties by the model not the DOM.
* UserInterface/Views/HierarchicalPathComponent.js:
(WebInspector.HierarchicalPathComponent):
(WebInspector.HierarchicalPathComponent.prototype.get element):
(WebInspector.HierarchicalPathComponent.prototype.get representedObject):
(WebInspector.HierarchicalPathComponent.prototype.get minimumWidth):
(WebInspector.HierarchicalPathComponent.prototype.get forcedWidth):
(WebInspector.HierarchicalPathComponent.prototype.set forcedWidth):
(WebInspector.HierarchicalPathComponent.prototype.get hidden):
(WebInspector.HierarchicalPathComponent.prototype.set hidden):
(WebInspector.HierarchicalPathComponent.prototype.get collapsed):
(WebInspector.HierarchicalPathComponent.prototype.set collapsed):
(WebInspector.HierarchicalPathComponent.prototype.get selectorArrows):
(WebInspector.HierarchicalPathComponent.prototype.set selectorArrows):
(WebInspector.HierarchicalPathComponent.prototype.get previousSibling):
(WebInspector.HierarchicalPathComponent.prototype.set previousSibling):
(WebInspector.HierarchicalPathComponent.prototype.get nextSibling):
(WebInspector.HierarchicalPathComponent.prototype.set nextSibling):
(WebInspector.HierarchicalPathComponent.prototype._updateElementTitleAndText):
(WebInspector.HierarchicalPathComponent.prototype._updateSelectElement.createOption):
(WebInspector.HierarchicalPathComponent.prototype._updateSelectElement):
2016-12-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Allow keyboard navigation in Heap Snapshot data grids
https://bugs.webkit.org/show_bug.cgi?id=165752
Reviewed by Brian Burg.
* UserInterface/Views/DOMTreeOutline.css:
(.tree-outline.dom:focus li.selected > span::after):
Use new color variable.
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get selectable): Deleted.
Should be selectable.
* UserInterface/Views/HeapSnapshotInstancesContentView.css:
(.heap-snapshot > .data-grid:focus tr.selected > td .sub-retained):
(.heap-snapshot > .data-grid:focus tr.selected .object-id,):
(.heap-snapshot > .data-grid:focus tr.selected .formatted-string,):
(.heap-snapshot > .data-grid:focus tr.selected td .location):
Selected row text should just be white, except for values that are usually
gray (object ID, object size, and sub-retained size values). These should
be styled like the "= $0" marker in the DOM tree outline.
(.heap-snapshot > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted.
Removed forced-focus reference. Only used by TreeOutlineDataGridSynchronizer.
* UserInterface/Views/Variables.css:
(:root):
Added --selected-secondary-text-color.
2016-12-12 Matt Baker <mattbaker@apple.com>
Web Inspector: Breakpoint Log action should support template literals
https://bugs.webkit.org/show_bug.cgi?id=165116
<rdar://problem/29464765>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
New string "${expr} = expression" for breakpoint popover.
* UserInterface/Controllers/BreakpointLogMessageLexer.js: Added.
To support template literal placeholders in message text, it is necessary
to distinguish plain text parts of the message from placeholders, since
plain text must be escaped.
(WebInspector.BreakpointLogMessageLexer):
(WebInspector.BreakpointLogMessageLexer.prototype.tokenize):
(WebInspector.BreakpointLogMessageLexer.prototype.reset):
(WebInspector.BreakpointLogMessageLexer.prototype._finishPlainText):
(WebInspector.BreakpointLogMessageLexer.prototype._finishExpression):
(WebInspector.BreakpointLogMessageLexer.prototype._appendToken):
(WebInspector.BreakpointLogMessageLexer.prototype._consume):
(WebInspector.BreakpointLogMessageLexer.prototype._peek):
(WebInspector.BreakpointLogMessageLexer.prototype._expression):
(WebInspector.BreakpointLogMessageLexer.prototype._plainText):
(WebInspector.BreakpointLogMessageLexer.prototype._possiblePlaceholder):
(WebInspector.BreakpointLogMessageLexer.prototype._regExpOrStringLiteral):
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._debuggerBreakpointOptions):
Build breakpoint "options" object for DebuggerAgent. If a Log action
contains template literal placeholders it is changed to an Evaluate
action, which calls console.log with a template literal.
(WebInspector.DebuggerManager.prototype._setBreakpoint):
Use converted breakpoint options.
* UserInterface/Main.html:
* UserInterface/Test.html:
New file.
* UserInterface/Views/BreakpointActionView.css:
(.breakpoint-action-block-body > .description):
Styles for breakpoint Log action hint text.
* UserInterface/Views/BreakpointActionView.js:
(WebInspector.BreakpointActionView.prototype._updateBody):
Add Log action hint text element.
2016-12-11 Matt Baker <mattbaker@apple.com>
Web Inspector: ThreadTreeElement should have a "Resume" status button when paused
https://bugs.webkit.org/show_bug.cgi?id=165581
Reviewed by Joseph Pecoraro.
* UserInterface/Images/Resume.svg:
Fill/stroke should be unspecified so that both can be styled in CSS.
* UserInterface/Views/DebuggerDashboardView.css:
(.dashboard.debugger .navigation-bar .item.debugger-dashboard-pause.activated):
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .navigation-bar .debugger-pause-resume):
(.sidebar > .panel.navigation.debugger > .navigation-bar .debugger-pause-resume.activated):
Recreate original style which relied on 'fill="none"' being specified in the SVG.
* UserInterface/Views/ThreadTreeElement.css:
(.tree-outline > .item.thread .icon):
(.tree-outline > .item.thread .status-button.resume):
(.tree-outline > .item.thread .status-button.resume:active):
(.tree-outline:matches(:focus, .force-focus) > .item.thread.selected .status-button.resume):
(.tree-outline > .item.thread.selected .status-button.resume,):
(.details-section.call-stack .thread .icon): Deleted.
Status button styles. Colors match those of the goto-arrow button.
* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Update status icon.
(WebInspector.ThreadTreeElement.prototype.oncontextmenu):
(WebInspector.ThreadTreeElement.prototype._updateStatus):
Add/remove status button based on paused state.
Stop propagation of "mousedown" events on the status button, to
prevent button press from selecting the tree element.
(WebInspector.ThreadTreeElement):
2016-12-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Move MainTarget and WorkerTarget to their own files
https://bugs.webkit.org/show_bug.cgi?id=165701
Reviewed by Brian Burg.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.scriptDidParse):
* UserInterface/Main.html:
* UserInterface/Protocol/MainTarget.js: Added.
(WebInspector.MainTarget):
(WebInspector.MainTarget.prototype.get displayName):
(WebInspector.MainTarget.prototype.get mainResource):
* UserInterface/Protocol/Target.js:
(WebInspector.Target):
(WebInspector.MainTarget): Deleted.
(WebInspector.MainTarget.prototype.get displayName): Deleted.
(WebInspector.MainTarget.prototype.get mainResource): Deleted.
(WebInspector.MainTarget.prototype.initialize): Deleted.
(WebInspector.WorkerTarget): Deleted.
(WebInspector.WorkerTarget.prototype.get displayName): Deleted.
(WebInspector.WorkerTarget.prototype.initialize): Deleted.
* UserInterface/Protocol/WorkerTarget.js: Added.
(WebInspector.WorkerTarget):
(WebInspector.WorkerTarget.prototype.get displayName):
* UserInterface/Test.html:
2016-12-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Frontend should not be resetting TypeProfiler state when switching between ContentViews
https://bugs.webkit.org/show_bug.cgi?id=165648
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
Update all backends when the state changes.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
(WebInspector.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
Moved this code to when the global Setting (which affects all editors) changes.
2016-12-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Some resources fetched via Fetch API do not have data
https://bugs.webkit.org/show_bug.cgi?id=165230
<rdar://problem/29449220>
Reviewed by Alex Christensen.
* Localizations/en.lproj/localizedStrings.js:
New "Fetch" and "Fetches" localized strings.
* UserInterface/Models/Resource.js:
(WebInspector.Resource.displayNameForType):
* UserInterface/Models/ResourceCollection.js:
(WebInspector.ResourceCollection.verifierForType):
* UserInterface/Views/CollectionContentView.js:
(WebInspector.CollectionContentView):
* UserInterface/Views/ResourceClusterContentView.js:
(WebInspector.ResourceClusterContentView.prototype.get responseContentView):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.compareResourceTreeElements):
New ResourceType.Fetch. Behave like XHR in most places.
2016-12-08 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unable to delete breakpoint from worker script
https://bugs.webkit.org/show_bug.cgi?id=165578
Reviewed by Matt Baker.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
Match setting breakpoints. If this is a "URL breakpoint", affect
all targets. If this is a "Script breakpoint", affect just the
single target containing that Script.
2016-12-07 Devin Rousso <dcrousso+webkit@gmail.com>
REGRESSION(r203912): Web Inspector: Navigation sidebar widths are not saved
https://bugs.webkit.org/show_bug.cgi?id=165496
Reviewed by Matt Baker.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype._sidebarWidthDidChange):
(WebInspector.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
(WebInspector.TabBrowser.prototype._sidebarWidthDidChange): Renamed from _detailsSidebarWidthDidChange.
Add event listener for when the navigation sidebar's width is changed.
* UserInterface/Views/TabContentView.js:
(WebInspector.TabContentView):
(WebInspector.TabContentView.prototype.get navigationSidebarPanel):
(WebInspector.TabContentView.prototype.get navigationSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get navigationSidebarWidthSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarPanels):
(WebInspector.TabContentView.prototype.get detailsSidebarCollapsedSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarSelectedPanelSetting):
(WebInspector.TabContentView.prototype.get detailsSidebarWidthSetting):
Add WebInspector.Setting object for the navigation sidebar's width.
2016-12-07 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Control Flow Profiler's event handlers aren't getting removed when ContentView closes
https://bugs.webkit.org/show_bug.cgi?id=165556
Reviewed by Joseph Pecoraro.
* UserInterface/Views/ScriptContentView.js:
(WebInspector.ScriptContentView.prototype.closed):
* UserInterface/Views/TextResourceContentView.js:
(WebInspector.TextResourceContentView.prototype.closed):
2016-12-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add ability to distinguish if a Script was parsed as a module
https://bugs.webkit.org/show_bug.cgi?id=164900
<rdar://problem/29323817>
Reviewed by Timothy Hatcher.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.get sourceType):
New property of Scripts. SourceType is either Program or Module.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.scriptDidParse):
* UserInterface/Protocol/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.scriptParsed):
Convert incoming module boolean into SourceType when creating new Scripts.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree):
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
Update the generic AST for new module specific Esprima types.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorScriptSourceType):
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
For pretty printing correctly state if this is a module or not for Esprima.
2016-12-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Update Esprima to support new features / syntax (**, async/await, trailing comma)
https://bugs.webkit.org/show_bug.cgi?id=164830
<rdar://problem/29293814>
Reviewed by Timothy Hatcher.
* UserInterface/External/Esprima/LICENSE:
* UserInterface/External/Esprima/esprima.js:
Updated to Esprima@7219731 (4.0.0-dev).
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype._recurse):
(WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
* UserInterface/Workers/Formatter/ESTreeWalker.js:
(ESTreeWalker.prototype._walkChildren):
Add new nodes (AwaitExpression).
Add new states (async boolean property on Functions).
Remove stale properties (defaults is no longer needed, as parameters
with default values are now AssignmentPatterns).
Update MetaProperty where meta/property are now Identifiers not strings.
* UserInterface/Workers/Formatter/EsprimaFormatter.js:
(EsprimaFormatter.prototype._handleTokenAtNode):
Handle pretty printing of new nodes and identifiers.
* Controllers/FrameResourceManager.js
Address a console.assert warning for stripping assertions in Production.
2016-12-07 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused and mostly untested Page domain commands and events
https://bugs.webkit.org/show_bug.cgi?id=165507
Reviewed by Brian Burg.
* UserInterface/Protocol/PageObserver.js:
(WebInspector.PageObserver.prototype.javascriptDialogOpening):
(WebInspector.PageObserver.prototype.javascriptDialogClosed):
(WebInspector.PageObserver.prototype.scriptsEnabled):
Keep stub in case legacy backends dispatch the event to the frontend.
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
Remove handleJavaScriptDialog command from legacy backends because it
doesn't appear as if the iOS backend handled it at all.
2016-12-06 Alexey Proskuryakov <ap@apple.com>
Correct SDKROOT values in xcconfig files
https://bugs.webkit.org/show_bug.cgi?id=165487
rdar://problem/29539209
Reviewed by Dan Bernstein.
Fix suggested by Dan Bernstein.
* Configurations/DebugRelease.xcconfig:
2016-12-05 Matt Baker <mattbaker@apple.com>
Web Inspector: Object.shallowEqual([{}], [{}]) should return true
https://bugs.webkit.org/show_bug.cgi?id=165397
Reviewed by Brian Burg.
* UserInterface/Base/Utilities.js:
(value):
Array.shallowEqual should compare array items using strict equivalence,
and on failure defer to Object.shallowEqual.
2016-12-05 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove legacy styles
https://bugs.webkit.org/show_bug.cgi?id=165389
Reviewed by Matt Baker.
Remove styles for platforms we don't build on anymore (Mavericks
and Mountain Lion). There are also no "unknown-mac" styles to
upgrade to a named platform.
* UserInterface/Base/Platform.js:
Add sierra and remove older unsupported platforms.
* UserInterface/Views/Main.css:
(body):
(body:not(.mavericks)): Deleted.
* UserInterface/Views/TabBar.css:
(body.mavericks .tab-bar > .item:not(.disabled).selected): Deleted.
* UserInterface/Views/Toolbar.css:
(body .toolbar):
(body.window-inactive .toolbar):
(body.mac-platform:not(.docked) .toolbar):
(body.mac-platform:not(.docked)):
(body:not(.mavericks) .toolbar,): Deleted.
(body.window-inactive:not(.mavericks) .toolbar): Deleted.
(body.mac-platform:not(.docked, .mavericks) .toolbar): Deleted.
(body.mac-platform:not(.docked, .mavericks)): Deleted.
Remove mavericks specific styles.
2016-12-02 Andy Estes <aestes@apple.com>
[Cocoa] Adopt the PRODUCT_BUNDLE_IDENTIFIER build setting
https://bugs.webkit.org/show_bug.cgi?id=164492
Reviewed by Dan Bernstein.
* Configurations/WebInspectorUIFramework.xcconfig: Set PRODUCT_BUNDLE_IDENTIFIER to
com.apple.$(PRODUCT_NAME:rfc1034identifier).
* Info.plist: Changed CFBundleIdentifier's value from
com.apple.${PRODUCT_NAME:rfc1034identifier} to ${PRODUCT_BUNDLE_IDENTIFIER}.
2016-12-02 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r192344): Web Inspector: Turning off Code Coverage or Type Profiler logs an error
https://bugs.webkit.org/show_bug.cgi?id=164804
<rdar://problem/29278028>
Reviewed by Matt Baker.
BasicBlockAnnotator and TypeTokenAnnotator were instanciated for a resource in an inactive Debugger tab.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
Don't show any content view if we are not in a selected tab.
2016-12-01 Matt Baker <mattbaker@apple.com>
Web Inspector: Show async stack traces for workers
https://bugs.webkit.org/show_bug.cgi?id=165235
<rdar://problem/29450172>
Reviewed by Joseph Pecoraro.
* UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline > .children > .item.call-frame.async-boundary):
(.tree-outline:not(.single-thread) > .children > .item.call-frame.async-boundary):
(.tree-outline .item.call-frame.async-boundary::before):
(.tree-outline.single-thread .item.call-frame.async-boundary::before):
(.tree-outline .item.call-frame.async-boundary): Deleted.
Style changes for single/multiple-thread call stacks.
Padding changes to account for Thread tree element.
Make selectors more specific where needed.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger .tree-outline.single-thread > .item.thread):
(.sidebar > .panel.navigation.debugger .tree-outline.single-thread):
Style changes for single/multiple-thread call stacks.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
Use a single tree outline for showing a single thread or multiple threads.
For single-threaded, hide Thread tree element and un-indent children.
(WebInspector.DebuggerSidebarPanel.prototype._targetAdded):
(WebInspector.DebuggerSidebarPanel.prototype._targetRemoved):
(WebInspector.DebuggerSidebarPanel.prototype._updateCallStackTreeOutline):
Update tree style and whether Thread tree element is selectable.
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
Remove support for second tree outline.
(WebInspector.DebuggerSidebarPanel.prototype._updateSingleThreadCallStacks): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._selectActiveCallFrameTreeElement): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._showSingleThreadCallStacks): Deleted.
(WebInspector.DebuggerSidebarPanel.prototype._showMultipleThreadCallStacks): Deleted.
No longer needed after unifying tree outlines.
* UserInterface/Views/ThreadTreeElement.js:
(WebInspector.ThreadTreeElement.prototype.refresh):
Append call frames from the async stack trace.
2016-11-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Clicking on link in Web Inspector can cause UIProcess to crash
https://bugs.webkit.org/show_bug.cgi?id=165157
<rdar://problem/27896562>
Reviewed by Brian Burg.
By correctly disallowing slashes in the scheme Web Inspector resolves
the correct absolute URL and doesn't end up trying to navigate to an
incorrect file URL.
* UserInterface/Base/URLUtilities.js:
(parseURL):
Disallow "/" characters in the scheme portion. (/http://example.com)
Allow path to be optional before a fragment portion. (http://example.com#frag)
2016-11-29 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve name sorting in HeapSnapshot data grids
https://bugs.webkit.org/show_bug.cgi?id=165170
<rdar://problem/28784421>
Reviewed by Matt Baker.
When sorting the Name column, group named properties and unnamed
properties and sort them each individually:
- Sort named properties by their property name (property names will be unique if they exist)
- Sort unnamed properties by their class name (guaranteed)
- Sort any tied class names by their object id
This makes using the Object Graph with Name sort easier to follow.
In the ascending sort you see all the named properties first,
followed by the unnamed (internal) properties.
* UserInterface/Views/HeapSnapshotContentView.js:
(WebInspector.HeapSnapshotObjectGraphContentView):
Since this data grid column now sorts on more than just the "Class Name"
rename it to "Name".
* UserInterface/Views/HeapSnapshotDataGridTree.js:
(WebInspector.HeapSnapshotDataGridTree.buildSortComparator):
Make the sort of the `className` column more general to handle sorting
by property names, class names, and object identifiers.
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.get propertyName):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype.createCellContent):
Provide a lazy `propertyName` accessor where we compute it once and stash
it on the DataGridNode to avoid extra work when resorting.
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populate.propertyName):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populate):
In the initial populated sort, provide the necessary property name property
the sort comparator expects.
2016-11-29 Matt Baker <mattbaker@apple.com>
Web Inspector: Breakpoints button enabled state is too subtle
https://bugs.webkit.org/show_bug.cgi?id=165153
Reviewed by Joseph Pecoraro.
* UserInterface/Images/Breakpoints.svg:
Change to path so stroke and fill can be styled.
* UserInterface/Views/DebuggerSidebarPanel.css:
(.sidebar > .panel.navigation.debugger > .navigation-bar .debugger-breakpoints):
(.sidebar > .panel.navigation.debugger > .navigation-bar .debugger-breakpoints.activated):
Fill and stroke styles for the active and inactive breakpoint button.
2016-11-28 Matt Baker <mattbaker@apple.com>
Web Inspector: Debugger should have an option for showing asynchronous call stacks
https://bugs.webkit.org/show_bug.cgi?id=163230
<rdar://problem/28698683>
Reviewed by Joseph Pecoraro.
* Localizations/en.lproj/localizedStrings.js:
New string for generic async call stack boundary label: "(async)".
* UserInterface/Controllers/DebuggerManager.js:
Create async stack depth setting and set default depth.
(WebInspector.DebuggerManager.prototype.get asyncStackTraceDepth):
(WebInspector.DebuggerManager.prototype.set asyncStackTraceDepth):
Make async stack depth setting accessible to the frontend.
(WebInspector.DebuggerManager.prototype.initializeTarget):
Set async stack depth value on the target.
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Plumbing for the async stack trace payload.
* UserInterface/Models/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
Updated for new StackTrace.fromPayload use.
* UserInterface/Models/DebuggerData.js:
(WebInspector.DebuggerData):
(WebInspector.DebuggerData.prototype.get asyncStackTrace):
(WebInspector.DebuggerData.prototype.updateForPause):
(WebInspector.DebuggerData.prototype.updateForResume):
More plumbing.
* UserInterface/Models/StackTrace.js:
Update frontend model for use as new protocol object Console.StackTrace,
which was previously an alias for a simple array of Console.CallFrames.
(WebInspector.StackTrace):
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.fromString):
(WebInspector.StackTrace.prototype.get topCallFrameIsBoundary):
(WebInspector.StackTrace.prototype.get parentStackTrace):
* UserInterface/Protocol/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.paused):
More plumbing.
* UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame.async-boundary):
Use default cursor since boundary element is not selectable.
(.tree-outline .item.call-frame.async-boundary .icon):
(.tree-outline .item.call-frame.async-boundary::before,):
(.tree-outline .item.call-frame.async-boundary::after):
(.tree-outline .item.call-frame.async-boundary::before):
Dimmed text and divider line styles for boundary element.
* UserInterface/Views/CallFrameTreeElement.js:
(WebInspector.CallFrameTreeElement):
Add a flag denoting whether the call frame is an async call trace
boundary, and set styles accordingly.
* UserInterface/Views/DebuggerSidebarPanel.js:
Set async stack trace depth, if supported.
(WebInspector.DebuggerSidebarPanel.prototype._updateSingleThreadCallStacks):
Add call frames for async stack traces to the call stack TreeOutline.
(WebInspector.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
Ensure that async call frames cannot become the active call frame.
* UserInterface/Views/Variables.css:
(:root):
Add --text-color-gray-medium, for dimmed text in async boundary element.
2016-11-18 Matt Baker <mattbaker@apple.com>
Web Inspector: TimelineDataGridNode assertions when refreshing page
https://bugs.webkit.org/show_bug.cgi?id=162642
<rdar://problem/28505898>
Reviewed by Timothy Hatcher.
This patch fixes a number of deficiencies in the Network tab that caused
TimelineDataGridNode graphs to refresh before the tab became visible.
* UserInterface/Views/ElementsTabContentView.js:
(WebInspector.ElementsTabContentView):
(WebInspector.ElementsTabContentView.prototype.shown):
Drive-by fix: defer showing the DOM content view until the tab is shown.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView):
Drive-by event listener cleanup.
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get endTime):
Back endTime with a variable, instead of using the ruler value which
isn't valid before the tab is shown for the first time.
(WebInspector.NetworkGridContentView.prototype.shown):
Force the grid to update its layout, and that of the Timeline column ruler.
During layout the ruler's secondsPerPixel value is used, which isn't
valid until the ruler does an initial layout.
(WebInspector.NetworkGridContentView.prototype.reset):
Clear pending records. This was causing duplicates to appear when the
inspected page was refreshed multiple times prior to showing the Network
tab for the first time.
(WebInspector.NetworkGridContentView.prototype.layout):
Should more closely match behavior in NetworkTimelineView.prototype.layout.
Graph end time padding is added if no longer updating the current time.
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
Track endTime of the last record added, so that the graph end time can
be padded once the current time is no longer being updated.
(WebInspector.NetworkGridContentView.prototype._update):
(WebInspector.NetworkGridContentView.prototype._stopUpdatingCurrentTime):
Graph end time padding shouldn't be applied here, since this isn't called
if the inspected page finishes loading before the view is shown.
(WebInspector.NetworkGridContentView.prototype._clearNetworkItems): Deleted.
Replaced by an arrow function.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype._networkTimelineReset):
Don't show the content view if the tab is hidden.
2016-11-17 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Shift clicking on named color value only shows its hex form
https://bugs.webkit.org/show_bug.cgi?id=162758
Reviewed by Timothy Hatcher.
* UserInterface/Models/Color.js:
(WebInspector.Color.prototype.nextFormat):
Reworked the logic for the formatting order to be the following:
- Long HEX and Long HEXAlpha
- RGB and RGBA
- HSL and HSLA
- Keyword (if applicable)
- Short HEX (if applicable)
- Short HEXAlpha (if applicable)
It will only show formats with alpha values if the color value has an alpha that is not 1.
If the alpha is not 1, it will not show formats with non-alpha values.
The changes to this function have no effect on the context menu items of InlineSwatch
elements. The purpose of each of those items is to allow the user to change the format to
a specified type, whereas WebInspector.Color.prototype.nextFormat is used to cycle through
all of the relevant formats.
(WebInspector.Color.prototype._toRGBString):
(WebInspector.Color.prototype._toRGBAString):
(WebInspector.Color.prototype._toHSLString):
(WebInspector.Color.prototype._toHSLAString):
Unrelated fix of extra decimals when converting from HEX to RGB and HSL.
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor._inlineSwatchValueChanged):
Removed assertion for `_hasActiveInlineSwatchEditor` since the value may change from
switching the format of a color swatch (Shift-Click).
2016-11-16 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Background tabs are often updating non-stop because they think they are visible
https://bugs.webkit.org/show_bug.cgi?id=164841
<rdar://problem/29298658>
Reviewed by Matt Baker.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype._networkTimelineRecordAdded):
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._update):
Don't constantly update when this tab is not in the foreground.
2016-11-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: SourceCodeTextEditor should display execution lines for background threads
https://bugs.webkit.org/show_bug.cgi?id=164679
<rdar://problem/29233026>
Reviewed by Timothy Hatcher.
There may be multiple threads paused in the same content view. With
this change we should a thread indicator for each primary line a
thread is paused on. It uses the same inline line indicator that
inline errors/warnings (issues) use.
When there is a single thread (just the Page) we don't show thread
indicators. But as soon as there are multiple threads we start
managing and showing them. The line indicator contains the name of
the thread on the side.
Note that SourceCodeTextEditor maintains the thread indicators, but
it still always handles the ActiveCallFrame as it used to, pushing
values down into TextEditor. The ActiveCallFrame styles override
the thread line indicators (albeit with the same styles). The reason
these are still separate is that TextEditor has some special styles
regarding its gutter for the active execution line. Eventually we
may want to find a way to push this up into SourceCodeTextEditor.
* Localizations/en.lproj/localizedStrings.js:
New string "%d Threads" when multiple threads are on the same line.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel):
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._activeCallFrameDidChange):
Update Watch Expressions when the active call frame changes.
* UserInterface/Views/SourceCodeTextEditor.css:
(.source-code.text-editor > .CodeMirror .line-indicator-widget):
(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
(.source-code.text-editor > .CodeMirror .line-indicator-widget > .arrow):
(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline > .arrow):
(.source-code.text-editor > .CodeMirror .line-indicator-widget > .icon):
(.source-code.text-editor > .CodeMirror .line-indicator-widget > .text):
(.source-code.text-editor > .CodeMirror .line-indicator-widget.inline > .text):
Share line indicator widget styles between issue widgets and thread widgets.
(.source-code.text-editor > .CodeMirror .thread-indicator):
(.source-code.text-editor > .CodeMirror .thread-widget):
(.source-code.text-editor > .CodeMirror .thread-widget.inline):
(.source-code.text-editor > .CodeMirror .thread-widget.inline > .arrow):
Colors for the thread-widget line-indicators.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.close):
New event listeners handling for Target added / removed events.
(WebInspector.SourceCodeTextEditor.prototype._targetAdded):
(WebInspector.SourceCodeTextEditor.prototype._targetRemoved):
Update thread indicators as needed.
(WebInspector.SourceCodeTextEditor.prototype._looselyMatchesSourceCodeLocation):
More generic match based just on the URLs. Even if the exact script comes
from a different target, if they share the same URL that is fine.
(WebInspector.SourceCodeTextEditor.prototype._callFramesDidChange):
(WebInspector.SourceCodeTextEditor.prototype._addThreadIndicatorForTarget):
(WebInspector.SourceCodeTextEditor.prototype._removeThreadIndicatorForTarget):
(WebInspector.SourceCodeTextEditor.prototype._threadIndicatorWidgetForLine):
(WebInspector.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
(WebInspector.SourceCodeTextEditor.prototype._handleThreadIndicatorWidgetClick):
Manage thread line indicator widgets. There are 3 maps we maintain.
1. line -> [threads]
List of threads paused on a line, needed for the UI text.
2. line -> widget
Gets the widget on a line so we can modify and eventually remove it.
3. target -> line
If a target is removed, we need to know what line it had an indicator on.
(WebInspector.SourceCodeTextEditor.prototype._isWidgetToggleable):
Generalize for all of our different line indicator widgets.
(WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
(WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
(WebInspector.SourceCodeTextEditor.prototype._reinsertAllThreadIndicators):
When first populated, or reformatted, clear and reinsert all widgets.
(WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
(WebInspector.SourceCodeTextEditor.prototype._logCleared):
(WebInspector.SourceCodeTextEditor.prototype._clearIssueWidgets): Renamed.
Rename _clearWidgets to _clearIssueWidgets.
2016-11-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused and untested Page.setTouchEmulationEnabled command
https://bugs.webkit.org/show_bug.cgi?id=164793
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
Tooltips for new button.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
New global setting.
* UserInterface/Views/DOMTreeContentView.js:
(WebInspector.DOMTreeContentView):
(WebInspector.DOMTreeContentView.prototype.get navigationItems):
(WebInspector.DOMTreeContentView.prototype._showPrintStylesSettingChanged):
(WebInspector.DOMTreeContentView.prototype._togglePrintStylesSetting):
New navigation bar button to toggle print styles.
* UserInterface/Controllers/CSSStyleManager.js:
(WebInspector.CSSStyleManager.prototype.mediaTypeChanged):
After toggling styles we will need to refresh styles, so provide
a meaningful way to trigger refreshing styles from the frontend.
* UserInterface/Images/Printer.svg: Added.
* UserInterface/Images/gtk/Printer.svg: Added.
New Printer icon for enabling / disabling print styles.
* UserInterface/Images/gtk/Crosshair.svg:
* UserInterface/Images/gtk/LayerBorders.svg:
* UserInterface/Images/gtk/NavigationItemCurleyBraces.svg:
* UserInterface/Images/gtk/NavigationItemTypes.svg:
* UserInterface/Images/gtk/PaintFlashing.svg:
* UserInterface/Images/gtk/ShadowDOM.svg:
* UserInterface/Images/gtk/ToggleLeftSidebar.svg:
* UserInterface/Images/gtk/ToggleRightSidebar.svg:
* UserInterface/Images/gtk/UpDownArrows.svg:
Fix a number of existing GTK images to have activated styles.
2016-11-15 Nikita Vasilyev <nvasilyev@apple.com>
REGRESSION (r208248): Web Inspector: Pressing Left Arrow breaks autocomplete
https://bugs.webkit.org/show_bug.cgi?id=164391
<rdar://problem/29102408>
Reviewed by Matt Baker.
Unroll r208248.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.updateCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.isCompletionChange):
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.close):
(WebInspector.CodeMirrorCompletionController.prototype.completionSuggestionsSelectedCompletion):
(WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._removeLastChangeFromHistory):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
(WebInspector.CodeMirrorCompletionController.prototype._generateJavaScriptCompletions):
2016-11-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused and untested Page.setTouchEmulationEnabled command
https://bugs.webkit.org/show_bug.cgi?id=164793
Reviewed by Matt Baker.
* UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
* UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
* Versions/Inspector-iOS-10.0.json:
* Versions/Inspector-iOS-7.0.json:
* Versions/Inspector-iOS-8.0.json:
* Versions/Inspector-iOS-9.0.json:
* Versions/Inspector-iOS-9.3.json:
2016-11-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: URL Breakpoints that resolve in multiple workers should only appear in the UI once
https://bugs.webkit.org/show_bug.cgi?id=164334
<rdar://problem/29073523>
Reviewed by Matt Baker.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint):
Don't add a duplicate BreakpointTreeElements for the same Breakpoint.
2016-11-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Worker debugging should pause all targets and view call frames in all targets
https://bugs.webkit.org/show_bug.cgi?id=164305
<rdar://problem/29056192>
Reviewed by Timothy Hatcher.
This implements a policy where, when one Target ("Thread") pauses
the frontend triggers a pause in all other Targets. The intended
user experience is "all threads pause" whenever the frontend shows
the debugger paused UI.
DebuggerManager has a few straight forward changes:
- The paused state reflects if any target is paused.
- The Paused Event is fired when going from !paused -> paused.
This means when the first target pauses.
- The Resumed Event is fired when going from paused -> !paused.
This means only after all targets have resumed.
- The CallFrameDidChange Event now includes the Target that updated.
When a Target first pauses the frontend then immediately pauses all
other Targets. This puts them into a "pausing" state (we display as
Idle) and they will pause as soon as they start executing JavaScript.
When a Target steps the "paused" state isn't changing. So this is
just a CallFramesDidChange update.
When clicking Resume we resume all targets. This is will be the normal,
expected way users resume execution. Note that one of the threads may
then hit a breakpoint and re-pause all threads.
Sometimes when multiple threads are paused you may want to run an
individual thread to completion but keep other threads paused. There
is a context menu on the ThreadTreeElement to resume just that
single thread. It will continue and pause for its next run loop.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Images/Thread.svg: Added.
* UserInterface/Images/gtk/Thread.svg: Added.
* UserInterface/Main.html:
New strings and files.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Test/Test.js:
(WebInspector.loaded):
Place the TargetManager first since other managers may want to listen
for TargetAdded / TargetRemoved events.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get paused):
This is now a computed state.
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
Affect all targets.
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.reset):
Update to use the paused computed property.
(WebInspector.DebuggerManager.prototype.continueUntilNextRunLoop):
Issue the new Debugger.continueUntilNextRunLoop command
on a given target.
(WebInspector.DebuggerManager.prototype.initializeTarget):
When a new Target is created and we were already paused,
then start that Worker in a paused state.
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
Recover from bad cases where the backend informs the frontend about
internal JavaScript that it shouldn't know about. Legacy backend do
this but also there are corner cases we need to handle.
Dispatch events appropriately now that multiple targets may be paused.
(WebInspector.DebuggerManager.prototype._didResumeInternal):
Dispatch events appropriately now that multiple targets may be paused.
(WebInspector.DebuggerManager.prototype._targetRemoved):
Remove debugger data for targets that go away to avoid leaks.
* UserInterface/Models/DebuggerData.js:
(WebInspector.DebuggerData):
(WebInspector.DebuggerData.prototype.get paused):
(WebInspector.DebuggerData.prototype.get pausing):
Move some more per-Target state into DebuggerData.
(WebInspector.DebuggerData.prototype.pauseIfNeeded):
(WebInspector.DebuggerData.prototype.resumeIfNeeded):
(WebInspector.DebuggerData.prototype.continueUntilNextRunLoop):
These should only be called by DebuggerManager. They correctly
update the state of the DebuggerData for this Target, and also
issue the underlying command to the target.
(WebInspector.DebuggerData.prototype.updateForPause):
(WebInspector.DebuggerData.prototype.updateForResume):
Handle a special case where continueUntilNextRunLoop triggers
an invisible "pause" on the backend that we should mirror.
* UserInterface/Protocol/Target.js:
(WebInspector.MainTarget):
(WebInspector.MainTarget.prototype.get displayName):
(WebInspector.MainTarget.prototype.initialize):
Better display names.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
(WebInspector.DebuggerSidebarPanel.prototype._updateSingleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._selectActiveCallFrameTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._showSingleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._showMultipleThreadCallStacks):
(WebInspector.DebuggerSidebarPanel.prototype._findThreadTreeElementForTarget):
(WebInspector.DebuggerSidebarPanel.prototype._targetAdded):
(WebInspector.DebuggerSidebarPanel.prototype._targetRemoved):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerCallFramesDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
The DebuggerSidebar still has a single "Call Stacks" section, but maintains
two TreeOutlines and only shows one at a time. The Single Thread view shows
a flat list of the call frames for the Main Target when it is the only target.
The Multiple Threads view shows a list of Threads and their call frames.
We always keep both up to date, because we may need to swap between them
purely as Targets are added / removed. There is a bit of extra logic to
ensure we select elements properly based only on the visible tree outline.
* UserInterface/Views/LogContentView.js:
(WebInspector.LogContentView.prototype.didAppendConsoleMessageView):
When evaluating in a particular target, "runAfterPendingDispatches"
must wait for all other commands in that particular target to have
completed. So use the target specific version.
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
Gracefully handle a few more TreeElements without a represented object.
* UserInterface/Views/IdleTreeElement.css: Added.
(.details-section.call-stack .idle .icon):
* UserInterface/Views/IdleTreeElement.js: Added.
(WebInspector.IdleTreeElement):
Very basic tree element to encapsulate an Idle call frame with an
empty represented object.
* UserInterface/Views/ThreadTreeElement.css: Added.
(.details-section.call-stack .thread .icon):
* UserInterface/Views/ThreadTreeElement.js: Added.
(WebInspector.ThreadTreeElement):
(WebInspector.ThreadTreeElement.prototype.get target):
(WebInspector.ThreadTreeElement.prototype.refresh):
(WebInspector.ThreadTreeElement.prototype.onattach):
(WebInspector.ThreadTreeElement.prototype.oncontextmenu):
ThreadTreeElement has no represented object, but makes it easy
to refresh a list of CallFrameTreeElements for a given target.
2016-11-14 Timothy Hatcher <timothy@apple.com>
Web Inspector: Disable Warning Filter in Debugger Tab By Default
https://bugs.webkit.org/show_bug.cgi?id=164723
rdar://problem/29251780
Reviewed by Joseph Pecoraro.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel): Made "debugger-show-resources-with-issues-only" false by default.
2016-11-14 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Settings tab should look more like a native macOS view
https://bugs.webkit.org/show_bug.cgi?id=164708
<rdar://problem/29241296>
Reviewed by Timothy Hatcher.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings):
(.content-view.settings > .header):
(.content-view.settings > .setting-container):
Match macOS Sierra default font size for settings view.
(.content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller):
(.content-view.settings > .setting-container > .setting-value-controller input):
(.content-view.settings > .setting-container > .setting-value-controller input[type="checkbox"]):
Make checkbox larger.
(.content-view.settings > .setting-container > .setting-value-controller select):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
Decrease the width of the number fields to make them just wide enough to fit 2 digit numbers.
2016-11-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Type Profiler and Code Coverage Profiler should work in Workers
https://bugs.webkit.org/show_bug.cgi?id=164682
Reviewed by Darin Adler.
* UserInterface/Controllers/BasicBlockAnnotator.js:
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.updateTypes):
Use the target associated with the Script.
* UserInterface/Protocol/Target.js:
(WebInspector.WorkerTarget.prototype.initialize):
When initializing a Worker Target, match the existing state
of the Page for these profilers.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptTypeInformation):
(WebInspector.SourceCodeTextEditor.prototype.willDismissPopover):
Use the correct target for this Script / Resource.
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
(WebInspector.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
Enable / disable for all targets when toggling profilers.
2016-11-11 Anthony Ricaud <rik@webkit.org>
Web Inspector: Whitespace in Editor should be less visible than regular content
https://bugs.webkit.org/show_bug.cgi?id=164660
Reviewed by Matt Baker.
* UserInterface/Views/CodeMirrorOverrides.css:
(.show-whitespace-characters .CodeMirror .cm-whitespace::before):
2016-11-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Call RuntimeAgent.disableControlFlowProfiler when Code Coverage Profiler is turned off
https://bugs.webkit.org/show_bug.cgi?id=163407
<rdar://problem/28764230>
Reviewed by Timothy Hatcher.
Turning Type Profiler off by clicking [T] icon now disables its backend by calling RuntimeAgent.disableTypeProfiler().
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
2016-11-11 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Settings tab: make the header smaller to fit more content
https://bugs.webkit.org/show_bug.cgi?id=164613
<rdar://problem/29206007>
Reviewed by Timothy Hatcher.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings > .header):
Use hv units for margin. 1vh = 1% of viewport height. When Web Inspector window is taller, the margin is larger.
(.content-view.settings > .setting-container):
Convert padding to margin to make spacing between the header and the first section better.
2016-11-10 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Call RuntimeAgent.disableControlFlowProfiler when Code Coverage Profiler is turned off
https://bugs.webkit.org/show_bug.cgi?id=163407
<rdar://problem/28764230>
Reviewed by Joseph Pecoraro.
Turning Code Coverage off by clicking [C] icon now disables its backend by calling RuntimeAgent.disableControlFlowProfiler().
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
2016-11-10 Aaron Chu <aaron_chu@apple.com>
Web Inspector: AXI: clarify button roles (e.g. toggle or popup button)
https://bugs.webkit.org/show_bug.cgi?id=130726
<rdar://problem/16420420>
Reviewed by Brian Burg.
Updated Inspector to show the button type using the new mapping information.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.accessibilityProperties.accessibilityPropertiesCallback):
(WebInspector.DOMNode.prototype.accessibilityProperties):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
2016-11-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: DebuggerManager.Event.Resumed introduces test flakiness
https://bugs.webkit.org/show_bug.cgi?id=161951
<rdar://problem/28295767>
Reviewed by Brian Burg.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.debuggerDidResume):
Now, Debugger.resumed events really mean the debugger resumed,
so act immediately instead of guessing. We must still guess
in legacy backends.
* UserInterface/Test/Test.js:
When the inspector frontend encounters an issue, log it.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
Always enable the step out button. I don't think it makes sense to disable
it sometimes, and if there are issues with this we should solve the issues
instead of hiding them.
2016-11-09 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Associate Worker Resources with the Worker and not the Page
https://bugs.webkit.org/show_bug.cgi?id=164342
<rdar://problem/29075775>
Reviewed by Timothy Hatcher.
A Target may have its own list of Resource. For example, Workers may
request any resources via XHR/Fetch. So we associate a ResourceCollection
with a Target, and ensure we show them in Web Inspector as you would expect.
At this point, Target starts acting like Frame. Target has a resourceCollection
and extraScriptsCollection just like Frame. Target has events for ResourceAdded
just like Frame.
Even though Resource loads are happening in Workers, the Network data
still comes from the Page's Network agent. The added "targetId" data
with the Resource will let us associate a Resoure with a Target.
When opening inspector after a page has loaded, the frontend loads Resources
via the Page.getResourceTree path. In this case, the frontend may be
informed of Resources for a Target that it does not know about yet. In
these cases, it sets them aside as Orphaned resources for a target. Later,
when that Target is created, it will adopt its Orphaned resources.
Places that used to listen to just Frame.Event.ResourceWasAdded should now
also listen for Target.Event.ResourceAdded to ensure it sees the resources
associated with non-page targets.
* UserInterface/Protocol/Target.js:
(WebInspector.Target):
(WebInspector.Target.prototype.get identifier):
(WebInspector.Target.prototype.get resourceCollection):
(WebInspector.Target.prototype.get extraScriptCollection):
(WebInspector.Target.prototype.addResource):
(WebInspector.Target.prototype.adoptResource):
(WebInspector.Target.prototype.addScript):
Give Target resource collections.
(WebInspector.MainTarget):
(WebInspector.MainTarget.prototype.get mainResource):
Pass through to the FrameResourceManager for the MainTarget.
(WebInspector.WorkerTarget):
(WebInspector.WorkerTarget.prototype.initialize):
Adopt orphaned resources on creation.
* UserInterface/Models/Resource.js:
(WebInspector.Resource):
(WebInspector.Resource.prototype.get target):
(WebInspector.Resource.prototype.get type):
Resource now has a Target. During creation, if there is a targetId
then we must produce a Target or null (orphaned).
(WebInspector.Resource.prototype.associateWithScript):
When associating a Resource with a Script, we can use this opportunity
to convert from an XML / Other type to Script.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype._resolveResource):
When associating Scripts with a resource we must associate resources
from within the proper Target. If it is the Main target we still use
the FrameResourceManager which keep searches across all Frames.
* UserInterface/Protocol/NetworkObserver.js:
(WebInspector.NetworkObserver.prototype.requestWillBeSent):
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.initialize):
(WebInspector.FrameResourceManager.prototype.frameDidNavigate):
(WebInspector.FrameResourceManager.prototype.resourceRequestWillBeSent):
(WebInspector.FrameResourceManager.prototype.resourceRequestWasServedFromMemoryCache):
(WebInspector.FrameResourceManager.prototype.resourceRequestDidReceiveResponse):
(WebInspector.FrameResourceManager.prototype.adoptOrphanedResourcesForTarget):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrameOrTarget):
(WebInspector.FrameResourceManager.prototype._addResourceToTarget):
(WebInspector.FrameResourceManager.prototype._createResource):
(WebInspector.FrameResourceManager.prototype._addFrameTreeFromFrameResourceTreePayload):
(WebInspector.FrameResourceManager.prototype._addOrphanedResource):
(WebInspector.FrameResourceManager.prototype._mainFrameDidChange):
(WebInspector.FrameResourceManager.prototype._addNewResourceToFrame): Deleted.
When creating Resources from Network events we may now have a targetId.
Once created a Resource must be associated with a Frame, Target, or orphaned.
* UserInterface/Main.html:
* UserInterface/Views/TargetTreeElement.js: Removed.
* UserInterface/Views/WorkerTreeElement.js: Added.
(WebInspector.WorkerTreeElement):
(WebInspector.WorkerTreeElement.prototype.get target):
(WebInspector.WorkerTreeElement.prototype.onexpand):
(WebInspector.WorkerTreeElement.prototype.oncollapse):
(WebInspector.WorkerTreeElement.prototype.onpopulate):
(WebInspector.WorkerTreeElement.prototype.updateSourceMapResources):
(WebInspector.WorkerTreeElement.prototype.onattach):
(WebInspector.WorkerTreeElement.prototype.compareChildTreeElements):
(WebInspector.WorkerTreeElement.prototype._handleContextMenuEvent):
(WebInspector.WorkerTreeElement.prototype._scriptAdded):
(WebInspector.WorkerTreeElement.prototype._resourceAdded):
Convert TargetTreeElement to WorkerTreeElement as that is clearer.
Behave like FrameTreeElement and populate resources on creation,
handle SourceMapResource, etc.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype.registerFolderizeSettings):
(WebInspector.FolderizedTreeElement.prototype._compareTreeElementsByMainTitle):
(WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
If the display name for a folder is `null` then there is no folder,
and place such child tree elements at the top level. This will be
the case for a Worker's Script's, which we choose not to folderize.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.scriptDidParse):
* UserInterface/Controllers/TargetManager.js:
(WebInspector.TargetManager.prototype.targetForIdentifier):
* UserInterface/Models/DefaultDashboard.js:
(WebInspector.DefaultDashboard):
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager):
* UserInterface/Controllers/WorkerManager.js:
(WebInspector.WorkerManager.prototype.workerCreated):
* UserInterface/Views/OpenResourceDialog.js:
(WebInspector.OpenResourceDialog.prototype.didDismissDialog):
(WebInspector.OpenResourceDialog.prototype.didPresentDialog):
(WebInspector.OpenResourceDialog.prototype._addScriptsForTarget): Deleted.
(WebInspector.OpenResourceDialog.prototype._addResourcesForTarget): Added.
Ensure those that listen for Frame.Event.ResourceWasAdded now also
listen for Target.Event.ResourceAdded.
* UserInterface/Views/ContextMenuUtilities.js:
(WebInspector.appendContextMenuItemsForSourceCode):
(WebInspector.appendContextMenuItemsForResource): Deleted.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype.appendContextMenuItems):
* UserInterface/Views/ResourceTreeElement.js:
(WebInspector.ResourceTreeElement.prototype._updateTitles):
(WebInspector.ResourceTreeElement.prototype._handleContextMenuEvent):
Generalize ContextMenu helper to SourceCode so it can be used on a Script or Resource.
* UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WebInspector.ResourceDetailsSidebarPanel.prototype.inspect):
When looking at a WorkerTarget's mainResource (Script) show the
Resource Details sidebar for its Resource.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._scriptsCleared):
(WebInspector.ResourceSidebarPanel.prototype._addTargetWithMainResource):
(WebInspector.ResourceSidebarPanel.prototype._targetRemoved):
(WebInspector.ResourceSidebarPanel.prototype._addScriptForNonMainTarget): Deleted.
Simplify ResourceSidebarPanel to only handle adding WorkerTreeElements,
which will do the rest of the work for their Resources/Scripts.
* UserInterface/Views/SourceCodeTreeElement.js:
(WebInspector.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange):
When we were changing the type of a resource, it would remove and re-insert.
This would collapse the parent if it was the only child in removal, and not
expand the parent when re-inserting. This ensures we re-expand.
2016-11-09 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Settings tab sections overlap each other in docked Inspector window
https://bugs.webkit.org/show_bug.cgi?id=164564
Reviewed by Joseph Pecoraro.
* UserInterface/Views/SettingsTabContentView.css:
(.content-view.settings):
Make settings sections non-shrinkable and make the content view vertically scrollable.
(.content-view.settings > .setting-container):
Set vertical padding that looks good for non-shrinkable sections.
2016-11-09 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Settings tab: Checkbox labels should be clickable
https://bugs.webkit.org/show_bug.cgi?id=164470
<rdar://problem/29133787>
Reviewed by Matt Baker.
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView.prototype.initialLayout):
Add a label element to make checkboxes clickable.
2016-11-09 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Allow FolderTreeElement to display content when selected
https://bugs.webkit.org/show_bug.cgi?id=164407
Reviewed by Timothy Hatcher.
* UserInterface/Main.html:
Add CollectionContentView and TitleView.
* UserInterface/Base/Main.js:
* UserInterface/Views/ContentView.js:
(WebInspector.ContentView.createFromRepresentedObject):
(WebInspector.ContentView.isViewable):
Add support for Collection as the representedObject of a content view.
* UserInterface/Views/CollectionContentView.css: Added.
(.content-view.collection):
(.content-view.collection > .content-view):
* UserInterface/Views/CollectionContentView.js: Added.
(WebInspector.CollectionContentView):
(WebInspector.CollectionContentView.prototype.initialLayout):
(WebInspector.CollectionContentView.prototype._addContentViewForItem):
(WebInspector.CollectionContentView.prototype._removeContentViewForItem):
(WebInspector.CollectionContentView.prototype._handleItemAdded):
(WebInspector.CollectionContentView.prototype._handleItemRemoved):
(WebInspector.CollectionContentView.prototype._handleContentError):
Takes in a Collection when constructed, and attempts to display a sub-ContentView for each
item in the collection if the type of the collection is viewable en masse. Currently, this
is only supported for WebInspector.Resource.Type.Image collections.
* UserInterface/Views/ResourceContentView.js:
(WebInspector.ResourceContentView.prototype._contentError):
Dispatch an event whenever the content fails to load.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype._treeSelectionDidChange):
* UserInterface/Views/ResourcesTabContentView.js:
(WebInspector.ResourcesTabContentView.prototype.canShowRepresentedObject):
Allow FolderTreeElements to be selected.
* UserInterface/Views/TitleView.css: Added.
(.title-view):
* UserInterface/Views/TitleView.js: Added.
(WebInspector.TitleView):
Basic view that displays the given text in the center of the viewable area.
2016-11-03 Nikita Vasilyev <nvasilyev@apple.com>
Web Inspector: Stack overflow when searching a timeline recording for JS function names
https://bugs.webkit.org/show_bug.cgi?id=161784
<rdar://problem/28219498>
Reviewed by Timothy Hatcher.
_populate method of ProfileNodeDataGridNode and ProfileDataGridNode traverses
all children of a given node. makeVisible function of DataGrid#_applyFiltersToNode
traverses all its parents to expand them. This creates an infinite recursion.
Remove "populate" event before appending child nodes to prevent it.
* UserInterface/Views/ProfileDataGridNode.js:
(WebInspector.ProfileDataGridNode.prototype._populate):
(WebInspector.ProfileDataGridNode):
* UserInterface/Views/ProfileNodeDataGridNode.js:
(WebInspector.ProfileNodeDataGridNode.prototype._populate):
(WebInspector.ProfileNodeDataGridNode):
2016-11-03 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Modify FolderTreeElement to have a Collection as a its represented object
https://bugs.webkit.org/show_bug.cgi?id=164349
Reviewed by Matt Baker.
* UserInterface/Views/FolderTreeElement.js:
(WebInspector.FolderTreeElement):
Now accepts a representedObject parameter, which must be a WebInspector.Collection.
* UserInterface/Views/FolderizedTreeElement.js:
(WebInspector.FolderizedTreeElement.prototype.registerFolderizeSettings):
(WebInspector.FolderizedTreeElement.prototype.updateParentStatus):
(WebInspector.FolderizedTreeElement.prototype._parentTreeElementForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._settingsForRepresentedObject):
(WebInspector.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
(WebInspector.FolderizedTreeElement):
Rework the logic for creating WebInspector.FolderTreeElement so that items for the
representedObject parameter may be passed in via registerFolderizeSettings.
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.): Deleted.
(WebInspector.FrameTreeElement.makeChildCountCallback): Deleted.
Rework logic for calling registerFolderizeSettings to support the representedObject
parameter. Also changed calls to WebInspector.Frame to support the
WebInspector.Collection class.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel.prototype.treeElementForRepresentedObject):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._scriptsCleared):
Create WebInspector.Collection instances of Script model objects for additional folders
created by the Resources sidebar:
- Anonymous Scripts
- Extension Scripts
- Extra Scripts
2016-11-02 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include DebuggerAgent in Workers - see, pause, and step through scripts
https://bugs.webkit.org/show_bug.cgi?id=164136
<rdar://problem/29028462>
Reviewed by Brian Burg.
By implementing DebuggerAgent, Workers will inform the frontend about
Scripts that evaluate in the Worker's VM and the Worker VM can pause
and send the pausing CallFrames to the frontend. This means that
WebInspector.Script and WebInspector.CallFrame will need to be made
target aware. This also means that each Target will have its own
set of debugger data, such as the list of scripts and pause data
like the pause reason / call frames. Previously all this data was
managed by DebuggerManager.
With this change we split that data out of DebuggerManager to be
per-target DebuggerData. DebuggerManager keeps `activeCallFrame`
but the list of scripts and pause data have moved into `DebuggerData`
which is per-target, accessed through DebuggerManager's new
dataForTarget(target) method.
Finally we make a few changes to the UserInterface to make Workers
and their scripts, appear grouped together. The Resources sidebar
previously had a single top level item for the Main Frame, which
has all its resources as its children (potentially grouped into
folders). With this change, each Worker gets its own top level
item as well, and the Worker's subresources (imported scripts)
become its children.
We also now associate a single mainResource with Targets. In the
case of Workers, we assume and assert that this is a Script. If
this were to ever change we would need to adjust the assumptions.
* UserInterface/Main.html:
* UserInterface/Test.html:
New files.
* UserInterface/Base/Main.js:
* UserInterface/Test/Test.js:
Add WebInspector.assumingMainTarget to fill in all the places where
we assume the main target right now, but would need to handle non-main
targets as other agents are implemented in workers. For example profile
data that assumes the main target right now could be worker targets
when we implement ScriptProfiler / Heap agents.
* UserInterface/Protocol/Connection.js:
(InspectorBackend.WorkerConnection):
* UserInterface/Protocol/Target.js:
(WebInspector.Target):
(WebInspector.Target.prototype.get DebuggerAgent):
(WebInspector.Target.prototype.get mainResource):
(WebInspector.Target.prototype.set mainResource):
(WebInspector.WorkerTarget.prototype.initialize):
(WebInspector.WorkerTarget):
Include DebuggerAgent in Targets.
Include a mainResource for Worker Targets.
* UserInterface/Protocol/DebuggerObserver.js:
(WebInspector.DebuggerObserver.prototype.scriptParsed):
(WebInspector.DebuggerObserver.prototype.breakpointResolved):
(WebInspector.DebuggerObserver.prototype.paused):
(WebInspector.DebuggerObserver.prototype.resumed):
Pass the target on to managers when necessary.
* UserInterface/Models/DebuggerData.js: Added.
(WebInspector.DebuggerData):
(WebInspector.DebuggerData.prototype.get target):
(WebInspector.DebuggerData.prototype.get callFrames):
(WebInspector.DebuggerData.prototype.get pauseReason):
(WebInspector.DebuggerData.prototype.get pauseData):
(WebInspector.DebuggerData.prototype.get scripts):
(WebInspector.DebuggerData.prototype.scriptForIdentifier):
(WebInspector.DebuggerData.prototype.scriptsForURL):
(WebInspector.DebuggerData.prototype.reset):
(WebInspector.DebuggerData.prototype.addScript):
(WebInspector.DebuggerData.prototype.pause):
(WebInspector.DebuggerData.prototype.unpause):
Extract per-target data from DebuggerManager. This includes the list
of scripts evaluated in a Target, and any pause data for this target
such as the pause reason and call frames.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.dataForTarget):
(WebInspector.DebuggerManager.prototype.get pauseReason): Deleted.
(WebInspector.DebuggerManager.prototype.get pauseData): Deleted.
(WebInspector.DebuggerManager.prototype.get callFrames): Deleted.
(WebInspector.DebuggerManager.prototype.reset):
New way to access per-target debugger data.
(WebInspector.DebuggerManager.prototype.initializeTarget):
When a new Target is created, synchronize frontend state with the target.
Things like the list of breakpoints and global breakpoint states.
(WebInspector.DebuggerManager.prototype.scriptForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
Convenience accessors for scripts must now provide a Target.
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
This is a convenience accessors for a list of all scripts across all targets
so this handles getting the list across all targets.
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.continueToLocation):
Stepping commands affect the current target with the active call frame.
Eventually we will change Pause and Resume behavior to affect all targets.
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.breakpointResolved):
(WebInspector.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._removeBreakpoint):
Breakpoints should be set on all targets, but we need a way
to set them on a specific target, when initializing an
individual target when we want to inform that single target
of all of the breakpoints.
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
(WebInspector.DebuggerManager.prototype._updateBreakOnExceptionsState):
Changing global breakpoint state should inform all targets.
(WebInspector.DebuggerManager.prototype.scriptDidParse):
Associate Scripts with a Target. Identify the main resource of a
Worker Target and set it as soon as we can.
(WebInspector.DebuggerManager.prototype.debuggerDidPause):
(WebInspector.DebuggerManager.prototype.debuggerDidResume):
(WebInspector.DebuggerManager.prototype._sourceCodeLocationFromPayload):
(WebInspector.DebuggerManager.prototype._scopeChainFromPayload):
(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
(WebInspector.DebuggerManager.prototype._mainResourceDidChange):
(WebInspector.DebuggerManager.prototype._didResumeInternal):
Pausing and resuming now happens per-target, so associate
created model objects (CallFrame, ScopeChain objects) and any
other necessary data with the target.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint):
(WebInspector.Breakpoint.prototype.get target):
(WebInspector.Breakpoint.prototype.get info):
* UserInterface/Models/CallFrame.js:
(WebInspector.CallFrame):
(WebInspector.CallFrame.prototype.get target):
(WebInspector.CallFrame.fromDebuggerPayload):
(WebInspector.CallFrame.fromPayload):
* UserInterface/Models/ConsoleMessage.js:
(WebInspector.ConsoleMessage):
* UserInterface/Models/Script.js:
(WebInspector.Script):
(WebInspector.Script.prototype.get target):
(WebInspector.Script.prototype.isMainResource):
(WebInspector.Script.prototype.requestContentFromBackend):
(WebInspector.Script.prototype._resolveResource):
* UserInterface/Models/StackTrace.js:
(WebInspector.StackTrace.fromPayload):
(WebInspector.StackTrace.fromString):
* UserInterface/Models/ProbeManager.js:
(WebInspector.ProbeManager.prototype.didSampleProbe):
* UserInterface/Models/Probe.js:
(WebInspector.ProbeSample):
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._appendLocationLink):
(WebInspector.ConsoleMessageView.prototype._formatParameterAsString):
Associate model objects with a specific target where necessary.
* UserInterface/Views/ObjectTreeBaseTreeElement.js:
(WebInspector.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject):
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.findFunctionSourceCodeLocation):
Use target specific DebuggerAgent where necessary.
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
* UserInterface/Controllers/TimelineManager.js:
(WebInspector.TimelineManager.prototype._callFramesFromPayload):
* UserInterface/Models/ScriptTimelineRecord.js:
(WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload.profileNodeFromPayload):
* UserInterface/Views/EventListenerSectionGroup.js:
(WebInspector.EventListenerSectionGroup.prototype._functionTextOrLink):
(WebInspector.EventListenerSectionGroup):
* UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WebInspector.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode.node.shortestGCRootPath.):
(WebInspector.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populateWindowPreview):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._populatePreview):
(WebInspector.HeapSnapshotInstanceDataGridNode.prototype._mouseoverHandler.appendPathRow):
* UserInterface/Views/ProfileDataGridNode.js:
(WebInspector.ProfileDataGridNode.prototype.iconClassName):
(WebInspector.ProfileDataGridNode.prototype.filterableDataForColumn):
(WebInspector.ProfileDataGridNode.prototype._displayContent):
Use assumed main target and audit these when the Worker gets more Agents.
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype._initiatorSourceCodeLocationFromPayload):
This will always be the main target because only the main target
has access to the DOM.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.get target):
(WebInspector.SourceCodeTextEditor.prototype.customPerformSearch):
(WebInspector.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
Update target specific actions to use the proper target's agents.
* UserInterface/Views/TargetTreeElement.js: Added.
(WebInspector.TargetTreeElement):
(WebInspector.TargetTreeElement.prototype.get target):
(WebInspector.TargetTreeElement.prototype.onexpand):
(WebInspector.TargetTreeElement.prototype.oncollapse):
Add a new tree element for a Target. We currently assume that the
main resource for a Target will be a Script right now, as is the
case for Web Workers. This simply remembers its expanded or
collapsed state and has a better icon.
* UserInterface/Views/ResourceIcons.css:
(body:matches(.mac-platform, .windows-platform) .script.worker-icon .icon):
(body:matches(.mac-platform, .windows-platform) .large .script.worker-icon .icon):
* UserInterface/Images/WorkerScript.png: Renamed from Source/WebInspectorUI/UserInterface/Images/WorkerDocument.png.
* UserInterface/Images/WorkerScript@2x.png: Renamed from Source/WebInspectorUI/UserInterface/Images/WorkerDocument@2x.png.
* UserInterface/Images/WorkerScriptLarge.png: Renamed from Source/WebInspectorUI/UserInterface/Images/WorkerDocumentLarge.png.
* UserInterface/Images/WorkerScriptLarge@2x.png: Renamed from Source/WebInspectorUI/UserInterface/Images/WorkerDocumentLarge@2x.png.
Improve icon for a Worker's main resource script.
* UserInterface/Views/ResourceSidebarPanel.js:
(WebInspector.ResourceSidebarPanel):
(WebInspector.ResourceSidebarPanel.prototype._scriptWasAdded):
(WebInspector.ResourceSidebarPanel.prototype._scriptsCleared):
(WebInspector.ResourceSidebarPanel.prototype._addScriptForNonMainTarget):
(WebInspector.ResourceSidebarPanel.prototype._addTargetWithMainResource):
(WebInspector.ResourceSidebarPanel.prototype._targetRemoved):
* UserInterface/Views/SearchSidebarPanel.js:
(WebInspector.SearchSidebarPanel.prototype.performSearch.searchScripts):
(WebInspector.SearchSidebarPanel.prototype._searchTreeElementForScript):
* UserInterface/Views/OpenResourceDialog.js:
(WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline.createTreeElement):
(WebInspector.OpenResourceDialog.prototype._populateResourceTreeOutline):
(WebInspector.OpenResourceDialog.prototype.didDismissDialog):
(WebInspector.OpenResourceDialog.prototype.didPresentDialog):
(WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
(WebInspector.OpenResourceDialog.prototype._addScriptsForTarget):
(WebInspector.OpenResourceDialog.prototype._scriptAdded):
(WebInspector.OpenResourceDialog):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerCallFramesDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._debuggerActiveCallFrameDidChange):
(WebInspector.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
Include scripts from non-main targets in sidebars.
2016-11-01 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Creating a new pseudo-selector in the Styles sidebar doesn't work on first attempt
https://bugs.webkit.org/show_bug.cgi?id=164092
Reviewed by Timothy Hatcher.
* UserInterface/Views/CSSStyleDeclarationSection.css:
(.style-declaration-section:not(.invalid-selector).rule-disabled > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .icon):
(.style-declaration-section.invalid-selector > .header > .selector,):
(.style-declaration-section.rule-disabled > .header > .icon): Deleted.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection):
(WebInspector.CSSStyleDeclarationSection.prototype.refresh):
(WebInspector.CSSStyleDeclarationSection.prototype._handleIconElementClicked):
(WebInspector.CSSStyleDeclarationSection.prototype._updateSelectorIcon): Added.
Re-add logic removed by https://webkit.org/b/159734 for handling invalid selectors. Instead
of just refreshing the section whenever the represented CSSRule changes selectors, we only
need to refresh if the selector no longer applies to the current element.
(WebInspector.CSSStyleDeclarationSection.prototype._handleMouseMove): Added.
Fix another issue discovered while adding the invalid selector warnings, where the title
attribute of each individual selector was no longer visible. To fix this, whenever the user
moves their mouse over the selector input, the position is compared to each selector to find
the first one that matches, whose title is then applied to the input element.
2016-11-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve debugger highlight in some exception cases
https://bugs.webkit.org/show_bug.cgi?id=164300
Reviewed by Matt Baker.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When walking up AST nodes and reach a throw statement, use that.
2016-11-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cleanup stale code in NetworkSidebarPanel
https://bugs.webkit.org/show_bug.cgi?id=164295
Reviewed by Matt Baker.
* UserInterface/Views/NetworkSidebarPanel.js:
(WebInspector.NetworkSidebarPanel.prototype.closed): Deleted.
This doesn't appear to be needed since NetworkSidebarPanel never
registered any event listeners.
2016-11-01 Devin Rousso <dcrousso+webkit@gmail.com>
REGRESSION (r191419): Web Inspector: Autocomplete is broken
https://bugs.webkit.org/show_bug.cgi?id=150493
Reviewed by Timothy Hatcher.
Fixed CodeMirror.undo() logic rolled out by r191539 <https://webkit.org/b/150537>
Added calls to CodeMirror.changeGeneration(true) which tells the history stack to "close"
the current event, preventing it from being consolidated with new changes. If the user
typed fast enough, non-completion changes (like adding ":" in CSS) would get merged with
completion changes, causing calls to CodeMirror.undo() to undo those changes as well. To
prevent this, a boolean variable is set to true whenever a completion "activity" is in
progress, defined by a sequence of completion related events. When this "activity" first
starts, call CodeMirror.changeGeneration(true) to freeze the current history.
See original bug for more information <https://webkit.org/b/147720>.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController):
(WebInspector.CodeMirrorCompletionController.prototype.updateCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.isCompletionChange):
(WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
(WebInspector.CodeMirrorCompletionController.prototype.close):
(WebInspector.CodeMirrorCompletionController.prototype.completionSuggestionsSelectedCompletion):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._applyCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._commitCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.update):
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint):
(WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
(WebInspector.CodeMirrorCompletionController.prototype._handleBeforeChange):
(WebInspector.CodeMirrorCompletionController.prototype._createCompletionHintMarker): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._removeLastChangeFromHistory): Deleted.
(WebInspector.CodeMirrorCompletionController.prototype._removeCompletionHint.clearMarker): Deleted.
2016-11-01 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Replace sublists inside DOM-related model objects with WI.Collection
https://bugs.webkit.org/show_bug.cgi?id=164098
Reviewed by Timothy Hatcher.
* UserInterface/Models/DOMTree.js:
* UserInterface/Models/Frame.js:
Add support for WebInspector.Collection.
* UserInterface/Models/Script.js:
(WebInspector.Script):
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
* UserInterface/Views/FrameTreeElement.js:
(WebInspector.FrameTreeElement):
(WebInspector.FrameTreeElement.prototype.onpopulate):
* UserInterface/Views/OpenResourceDialog.js:
(WebInspector.OpenResourceDialog.prototype._addResourcesForFrame):
Use new functions defined by changing to WebInspector.Collection.
2016-11-01 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Fix double remove of ResourceCollection if type changes
https://bugs.webkit.org/show_bug.cgi?id=164268
Reviewed by Joseph Pecoraro.
* UserInterface/Models/ResourceCollection.js:
(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
Change logic so that a non-typed collection will not try to remove a resource that has
changed types from the sub-collection of its old type, since the sub-collection itself will
handle the removal inside its own event listener for the type change.
2016-11-01 Ryosuke Niwa <rniwa@webkit.org>
Web Inspector: Add the support for custom elements
https://bugs.webkit.org/show_bug.cgi?id=164266
<rdar://problem/29038883>
Reviewed by Joseph Pecoraro.
Show the custom element state in DOM node's details pane:
- "Element" for all builtin elements.
- "Element (Custom)" for any upgraded custom elements.
- "Element (Waiting to be upgraded)" for any element waiting to be upgraded.
- "Element (Failed to upgrade)" for any custom element that failed during construction or an upgrade.
And add "Jump to Definition" to the context menu of an node to find the custom element's definition.
* Localizations/en.lproj/localizedStrings.js: Added localized strings.
* UserInterface/Controllers/DOMTreeManager.js:
(WebInspector.DOMTreeManager.prototype._customElementStateChanged): Added. Update the state and fire
WebInspector.DOMTreeManager.Event.CustomElementStateChanged to update the node's details pane.
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode): Set the custom element state or default to "builtin". Use null when the node
is not an element.
(WebInspector.DOMNode.prototype.isCustomElement): Added. Returns true if this is a successfully
constructed or upgraded custom element.
(WebInspector.DOMNode.prototype.customElementState): Added.
(WebInspector.DOMNode.CustomElementState): Added.
* UserInterface/Protocol/DOMObserver.js:
(WebInspector.DOMObserver.prototype.customElementStateChanged): Added.
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.getProperty): Added. Retrieves the property of a given name from
the remote backend.
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel): Call _customElementStateChanged when the custom element
state changes by listening to WebInspector.DOMTreeManager.Event.CustomElementStateChanged.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype.layout):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshIdentity): Extracted from layout.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementStateChanged): Added.
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._nodeTypeDisplayName): Include the custom element
state when it's not a builtin element (_customElementState returns null in that case).
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._customElementState): Get the localized string for
each custom element state.
* UserInterface/Views/DOMTreeElement.js:
(WebInspector.DOMTreeElement.prototype._populateNodeContextMenu): Add "Jump to Definition" item in the
context menu of an element when it's a successfully constructed or upgraded custom element.
2016-10-31 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Shadow DOM scoped styles are missing
https://bugs.webkit.org/show_bug.cgi?id=164247
<rdar://problem/29035061>
Reviewed by Antti Koivisto.
* UserInterface/Models/DOMNodeStyles.js:
(WebInspector.DOMNodeStyles.prototype.refresh.fetchedInlineStyles):
Fix incorrect WrapperPromise usage.
2016-10-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Arrows for Styles scope bar item are misaligned
https://bugs.webkit.org/show_bug.cgi?id=164159
Reviewed by Timothy Hatcher.
* UserInterface/Views/ScopeRadioButtonNavigationItem.css:
(.scope-radio-button-navigation-item > .scope-radio-button-item-select:focus):
(.scope-radio-button-navigation-item > .arrows):
2016-10-31 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Entering ":n" in Open Resource Dialog, where n > number of lines, should jump to the last line
https://bugs.webkit.org/show_bug.cgi?id=160840
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition):
Since it is possible for the given position to be outside the bounds of the CodeMirror
instance, wait to get the line handler for the highlight animation until we have constrained
the position value.
2016-10-28 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Preferences for Text Editor behavior
https://bugs.webkit.org/show_bug.cgi?id=149120
Reviewed by Timothy Hatcher.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
(WebInspector.contentLoaded):
(WebInspector.contentLoaded.setTabSize):
(WebInspector.contentLoaded.setInvalidCharacterClassName):
(WebInspector.contentLoaded.setWhitespaceCharacterClassName):
(WebInspector._tryToRestorePendingTabs):
(WebInspector.indentString):
(WebInspector._updateNewTabButtonState): Deleted.
(WebInspector._newTabItemClicked): Deleted.
Removed calls to the New Tab tab bar item on the Tab Bar instance.
Added listener to the indentUnit setting to change the tab-size value on <body>.
Created helper function to generate the indentString value from settings.
* UserInterface/Base/Test.js:
(WebInspector.indentString):
Assume indent string is " " for tests.
* UserInterface/Base/Setting.js:
Added global WebInspector.settings dictionary for holding settings with UI editors.
* UserInterface/Main.html:
Added GeneralTabBarItem, PinnedTabBarItem, and SettingsTabContentView.
* UserInterface/Models/CSSStyleDeclaration.js:
(WebInspector.CSSStyleDeclaration.prototype.generateCSSRuleString):
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
(WebInspector.CSSStyleDeclarationTextEditor.prototype._formattedContentFromEditor):
(WebInspector.CSSStyleDeclarationTextEditor.prototype._resetContent.update):
* UserInterface/Views/VisualStylePropertyEditor.js:
(WebInspector.VisualStylePropertyEditor.generateFormattedTextForNewProperty):
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
Now uses WebInspector.indentUnit for indentation values
* UserInterface/Views/CodeMirrorAdditions.js:
Added "showWhitespaceCharacter" option to CodeMirror. When enabled, it adds an overlay to
the editor that will use pseudo-elements to display whitespace characters (unicode 00B7).
* UserInterface/Views/CodeMirrorOverrides.css:
(.CodeMirror .cm-tab):
(.show-whitespace-characters .CodeMirror .cm-tab::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-1::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-2::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-3::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-4::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-5::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-6::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-7::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-8::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-9::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-10::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-11::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-12::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-13::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-14::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-15::before):
(.show-whitespace-characters .CodeMirror .cm-whitespace-16::before):
(.show-invalid-characters .CodeMirror .cm-invalidchar):
(.CodeMirror .cm-invalidchar): Deleted.
Use unicode character 00B7 (middle dot) to display a space. Also uses a grey border for
visualizing tab characters.
* UserInterface/Views/ApplicationCacheFrameContentView.js:
* UserInterface/Views/CSSStyleDeclarationTextEditor.js:
* UserInterface/Views/ClusterContentView.js:
* UserInterface/Views/DOMTreeContentView.js:
* UserInterface/Views/DatabaseContentView.js:
* UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
* UserInterface/Views/NetworkGridContentView.js:
* UserInterface/Views/ResourceContentView.js:
* UserInterface/Views/ScriptContentView.js:
* UserInterface/Views/TabContentView.js:
* UserInterface/Views/TimelineRecordingContentView.js:
Add calls to super.shown(), super.hidden(), and super.closed().
* UserInterface/Views/ConsoleTabContentView.js:
* UserInterface/Views/DebuggerTabContentView.js:
* UserInterface/Views/ElementsTabContentView.js:
* UserInterface/Views/NetworkTabContentView.js:
* UserInterface/Views/NewTabContentView.js:
* UserInterface/Views/ResourcesTabContentView.js:
* UserInterface/Views/SearchTabContentView.js:
* UserInterface/Views/StorageTabContentView.js:
* UserInterface/Views/TimelineTabContentView.js:
Now uses WebInspector.GeneralTabBarItem.
* UserInterface/Views/GeneralTabBarItem.js: Added.
(WebInspector.GeneralTabBarItem):
(WebInspector.GeneralTabBarItem.prototype.set title):
(WebInspector.GeneralTabBarItem.prototype._handleContextMenuEvent):
Split from TabBarItem.js to make pinned tab bar items more distinct.
* UserInterface/Views/Main.css:
(body):
Removed tab-size.
* UserInterface/Views/PinnedTabBarItem.js: Added.
(WebInspector.PinnedTabBarItem):
Split from TabBarItem.js to make pinned tab bar items more distinct.
* UserInterface/Views/SettingsTabContentView.css: Added.
(.content-view.settings):
(.content-view.settings > .header):
(.content-view.settings > .setting-container):
(.content-view.settings > .setting-container > .setting-name):
(.content-view.settings > .setting-container > .setting-value-controller):
(.content-view.settings > .setting-container > .setting-value-controller input[type="number"]):
* UserInterface/Views/SettingsTabContentView.js:
(WebInspector.SettingsTabContentView):
(WebInspector.SettingsTabContentView.tabInfo):
(WebInspector.SettingsTabContentView.isEphemeral):
(WebInspector.SettingsTabContentView.shouldSaveTab):
(WebInspector.SettingsTabContentView.prototype.initialLayout):
(WebInspector.SettingsTabContentView.isTabAllowed): Deleted.
(WebInspector.SettingsTabContentView.prototype.get type): Deleted.
Added logic to display an appropriate editor for each item in WebInspector.settings.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.close):
Add call to super.close().
* UserInterface/Views/TabBar.css:
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover):
(.tab-bar > .item:not(.pinned) > .flex-space:last-child):
(.tab-bar > .item.pinned > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon):
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover,): Deleted.
(.tab-bar > .item > .flex-space:last-child): Deleted.
(.tab-bar > .item.new-tab-button > .icon): Deleted.
(.tab-bar:not(.animating) > .item:not(.selected, .disabled):hover > .icon,): Deleted.
Removed rules specifically targeting `.new-tab-button`.
* UserInterface/Views/TabBar.js:
(WebInspector.TabBar):
(WebInspector.TabBar.prototype.get newTabTabBarItem):
(WebInspector.TabBar.prototype.updateNewTabTabBarItemState):
(WebInspector.TabBar.prototype.insertTabBarItem):
(WebInspector.TabBar.prototype.removeTabBarItem.animateTabs):
(WebInspector.TabBar.prototype.removeTabBarItem):
(WebInspector.TabBar.prototype.selectPreviousTab):
(WebInspector.TabBar.prototype.selectNextTab):
(WebInspector.TabBar.prototype.set selectedTabBarItem):
(WebInspector.TabBar.prototype.hasNormalTab):
(WebInspector.TabBar.prototype.layout):
(WebInspector.TabBar.prototype._hasMoreThanOneNormalTab):
(WebInspector.TabBar.prototype._handleMouseDown):
(WebInspector.TabBar.prototype._handleMouseMoved):
(WebInspector.TabBar.prototype._handleMouseLeave):
(WebInspector.TabBar.prototype._handleNewTabClick):
(WebInspector.TabBar.prototype._handleNewTabMouseEnter):
(WebInspector.TabBar.prototype.get newTabItem): Deleted.
(WebInspector.TabBar.prototype.set newTabItem): Deleted.
Replaced the newTabItem setter by adding a saved pinned tab bar item (instead of relying
upon a different object to give it the pinned tab bar item) that changes modes depending on
whether a new tab is able to be created.
* UserInterface/Views/TabBarItem.js:
(WebInspector.TabBarItem):
(WebInspector.TabBarItem.prototype.get element):
(WebInspector.TabBarItem.prototype.get representedObject):
(WebInspector.TabBarItem.prototype.set representedObject):
(WebInspector.TabBarItem.prototype.get parentTabBar):
(WebInspector.TabBarItem.prototype.set parentTabBar):
(WebInspector.TabBarItem.prototype.get image):
(WebInspector.TabBarItem.prototype.set image):
(WebInspector.TabBarItem.prototype.get title):
(WebInspector.TabBarItem.prototype.set title):
(WebInspector.TabBarItem.prototype.get pinned): Deleted.
(WebInspector.TabBarItem.prototype._handleContextMenuEvent): Deleted.
Split into GeneralTabBarItem and PinnedTabBarItem to simplify the logic of the DOM and allow
for easier checking of whether a tab bar item is pinned or not.
* UserInterface/Views/TabBrowser.js:
(WebInspector.TabBrowser):
(WebInspector.TabBrowser.prototype.addTabForContentView):
(WebInspector.TabBrowser.prototype.closeTabForContentView):
(WebInspector.TabBrowser.prototype._tabBarItemSelected):
(WebInspector.TabBrowser.prototype._tabBarItemRemoved):
Replaced references to newTabItem with a set number (since each TabBar has a specific number
of pinned tabs).
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.prototype.close):.
Remove settings update event listeners to allow garbage collection.
(WebInspector.TextEditor.prototype._startWorkerPrettyPrint):
(WebInspector.TextEditor.prototype._startCodeMirrorPrettyPrint):
Now uses the settings values in WebInspector.setting for settings on the CodeMirror
instance. Also updates the CodeMirror instance if any setting changes.
2016-10-28 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include parameter strings for native CustomElementRegistry methods in the console
https://bugs.webkit.org/show_bug.cgi?id=164147
Reviewed by Brian Burg.
* UserInterface/Models/NativeFunctionParameters.js:
2016-10-28 Matt Baker <mattbaker@apple.com>
Unreviewed, worker document images added
* UserInterface/Images/WorkerDocument.png: Added.
* UserInterface/Images/WorkerDocument@2x.png: Added.
* UserInterface/Images/WorkerDocumentLarge.png: Added.
* UserInterface/Images/WorkerDocumentLarge@2x.png: Added.
2016-10-27 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Create general model object Collection class
https://bugs.webkit.org/show_bug.cgi?id=163995
Reviewed by Joseph Pecoraro.
* UserInterface/Models/Collection.js: Added.
(WebInspector.Collection):
(WebInspector.Collection.prototype.get items):
(WebInspector.Collection.prototype.get typeVerifier):
(WebInspector.Collection.prototype.add):
(WebInspector.Collection.prototype.remove):
(WebInspector.Collection.prototype.clear):
(WebInspector.Collection.prototype.toArray):
(WebInspector.Collection.prototype.toJSON):
(WebInspector.Collection.prototype.itemAdded):
(WebInspector.Collection.prototype.itemRemoved):
(WebInspector.Collection.prototype.itemsCleared):
Class that holds multiple model objects. It can be limited to a specific type by supplying
a "typeVerifier", which is a function that accepts a single argument (the model object) and
returns true/false depending on if that argument matches the "type" of the collection.
* UserInterface/Main.html:
* UserInterface/Test.html:
* UserInterface/Models/Frame.js:
* UserInterface/Views/CookieStorageContentView.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
* UserInterface/Views/FrameTreeElement.js:
* UserInterface/Views/OpenResourceDialog.js:
Add support for WebInspector.Collection.
* UserInterface/Models/ResourceCollection.js:
(WebInspector.ResourceCollection):
(WebInspector.ResourceCollection.verifierForType):
(WebInspector.ResourceCollection.prototype.resourceCollectionForType):
(WebInspector.ResourceCollection.prototype.clear):
(WebInspector.ResourceCollection.prototype.itemAdded):
(WebInspector.ResourceCollection.prototype.itemRemoved):
(WebInspector.ResourceCollection.prototype.itemsCleared):
(WebInspector.ResourceCollection.prototype._associateWithResource):
(WebInspector.ResourceCollection.prototype._disassociateWithResource):
(WebInspector.ResourceCollection.prototype._resourceURLDidChange):
(WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
(WebInspector.ResourceCollection.prototype.get resources): Deleted.
(WebInspector.ResourceCollection.prototype.resourcesWithType): Deleted.
(WebInspector.ResourceCollection.prototype.addResource): Deleted.
(WebInspector.ResourceCollection.prototype.removeResource): Deleted.
(WebInspector.ResourceCollection.prototype.removeAllResources): Deleted.
Now a subclass of WebInspector.Collection. Retrieving WebInspector.Resource objects by type
and URL is still supported, but requesting by type now returns another instance of
WebInspector.ResourceCollection that is configured to only accept the requested type.
2016-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include ConsoleAgent in Workers - real console.log support
https://bugs.webkit.org/show_bug.cgi?id=163844
<rdar://problem/28903328>
Reviewed by Brian Burg.
* UserInterface/Protocol/Target.js:
(WebInspector.Target.prototype.get ConsoleAgent):
(WebInspector.Target.prototype._initializeNonMainTarget):
* UserInterface/Protocol/Connection.js:
(InspectorBackend.WorkerConnection):
Add ConsoleAgent.
* UserInterface/Controllers/LogManager.js:
(WebInspector.LogManager.prototype.messageWasAdded):
(WebInspector.LogManager.prototype.requestClearMessages):
Handle ConsoleAgent calls with multiple targets.
* UserInterface/Protocol/ConsoleObserver.js:
(WebInspector.ConsoleObserver.prototype.messageAdded):
Dispatch with the target in case we create Model objects.
* UserInterface/Controllers/WorkerManager.js:
(WebInspector.WorkerManager.prototype.workerCreated):
The frontend must now call "initialized" on Workers after
sending our setup messages (enable, set breakpoints, etc).
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject.prototype.get target):
Expose an accessor for tests.
* UserInterface/Protocol/LoggingProtocolTracer.js:
(WebInspector.LoggingProtocolTracer.prototype._processEntry):
Actually output the Exception, useful when debugging failures in tests.
2016-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Include RuntimeAgent in Workers - evaluate in Worker context
https://bugs.webkit.org/show_bug.cgi?id=163835
<rdar://problem/28901465>
Reviewed by Brian Burg.
This introduces the idea that the frontend may communication with multiple
backend "Targets" which each have their own set of Agents.
- WebInspector.Target
- has its own list of Agents
- has a InspectorBackend.Connection to communicate with the backend
- WebInspector.mainTarget
- always exists and represents the thing we are debugging (Page or JSContext)
- WebInspector.targets / WebInspector.targetManager
- management of all Targets
- create new Targets for Workers
This also slowly introduces the concept that Model objects may be tied to
a specific Target:
- WebInspector.RemoteObject
- in order to evaluate JS and interact with this object we must know the target (Page or Worker)
- when fetching PropertyDescriptors and other RemoteObjects we must continue to pass on the target
Finally this makes the QuickConsole list Worker execution contexts in
the context picker so that users can choose a Worker context and
evaluate JavaScript in that context using the console.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Main.html:
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Test.html:
* UserInterface/Test/Test.js:
(WebInspector.loaded):
New files, strings, and managers.
New global WebInspector.mainTarget.
New convenience WebInspector.targets.
* UserInterface/Protocol/Target.js: Added.
(WebInspector.Target):
(WebInspector.Target.prototype.get RuntimeAgent):
(WebInspector.Target.prototype.get name):
(WebInspector.Target.prototype.get type):
(WebInspector.Target.prototype.get connection):
(WebInspector.Target.prototype.get executionContext):
(WebInspector.Target.prototype.get displayName):
(WebInspector.Target.prototype._intializeMainTarget):
(WebInspector.Target.prototype._initializeNonMainTarget):
Target has some basic properties.
* UserInterface/Controllers/TargetManager.js:
(WebInspector.TargetManager):
(WebInspector.TargetManager.prototype.get targets):
(WebInspector.TargetManager.prototype.addTarget):
(WebInspector.TargetManager.prototype.removeTarget):
Holds the list of Targets and events when created / removed.
Each target with a RuntimeAgent has an ExecutionContext.
* UserInterface/Controllers/WorkerManager.js:
(WebInspector.WorkerManager):
(WebInspector.WorkerManager.prototype.workerCreated):
(WebInspector.WorkerManager.prototype.workerTerminated):
(WebInspector.WorkerManager.prototype.dispatchMessageFromWorker):
Create / remove / dispatch on a Worker Target.
* UserInterface/Protocol/InspectorBackend.js:
(InspectorBackendClass):
(InspectorBackendClass.prototype.registerCommand):
(InspectorBackendClass.prototype.dispatch):
(InspectorBackendClass.prototype.runAfterPendingDispatches):
(InspectorBackendClass.prototype._agentForDomain):
Keep the original implementations and just dispatch to the main connection.
(InspectorBackend.Agent):
(InspectorBackend.Agent.prototype.get connection):
(InspectorBackend.Agent.prototype.set connection):
(InspectorBackend.Agent.prototype.get dispatcher):
We will share Agent implementations but just give new "copies" a different
connection and dispatcher.
(InspectorBackend.Command):
(InspectorBackend.Command.create):
(InspectorBackend.Command.prototype.invoke):
(InspectorBackend.Command.prototype.supports):
We continue to have a single Command instance on the Agent. However instead
of using the hardcoded Agent on the Instance when evaluated as a function
it uses the `this` object which should be an agent. This way:
target1.RuntimeAgent.evaluate
- `this` is target1 and we use the connection for that target
target2.RuntimeAgent.evaluate
- `this` is target2 and we use the connection for that target
Unfortunately this breaks `RuntimeAgent.evaluate.invoke`. Currently this
is solved by providing an extra parameter. In the case where we need to
invoke on a particular agent we must provide the agent.
target.RuntimeAgent.evaluate.invoke({options}, target.RuntimeAgent)
This is unfortunate but only needed in a handful of places right now.
(InspectorBackendClass.prototype._sendCommandToBackendWithCallback): Deleted.
(InspectorBackendClass.prototype._sendCommandToBackendExpectingPromise): Deleted.
(InspectorBackendClass.prototype._sendMessageToBackend): Deleted.
(InspectorBackendClass.prototype._dispatchResponse): Deleted.
(InspectorBackendClass.prototype._dispatchResponseToCallback): Deleted.
(InspectorBackendClass.prototype._dispatchResponseToPromise): Deleted.
(InspectorBackendClass.prototype._dispatchEvent): Deleted.
(InspectorBackendClass.prototype._flushPendingScripts): Deleted.
(InspectorBackend.Agent.prototype.get currentDispatchState): Deleted.
(InspectorBackend.Command.prototype.deliverFailure): Deleted.
* UserInterface/Protocol/Connection.js: Added.
(InspectorBackend.Connection):
(InspectorBackend.Connection.prototype.get target):
(InspectorBackend.Connection.prototype.set target):
(InspectorBackend.Connection.prototype.dispatch):
(InspectorBackend.Connection.prototype.runAfterPendingDispatches):
(InspectorBackend.Connection.prototype.sendMessageToBackend):
(InspectorBackend.Connection.prototype._dispatchResponse):
(InspectorBackend.Connection.prototype._dispatchResponseToCallback):
(InspectorBackend.Connection.prototype._dispatchResponseToPromise):
(InspectorBackend.Connection.prototype._dispatchEvent):
(InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
(InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
(InspectorBackend.Connection.prototype._sendMessageToBackend):
(InspectorBackend.Connection.prototype._flushPendingScripts):
This extracts the Connection details into its own class.
Although we make it appear as though a Target has a list of
Agents, we actually have the Connection hold the list of Agents.
Instead of cloning the entire Agent we just create a new object
extended from the original Agent instance. This allows us to keep
the same interface but just change the connection / dispatcher
properties within the Agent.
(InspectorBackend.MainConnection):
(InspectorBackend.MainConnection.prototype.sendMessageToBackend):
(InspectorBackend.WorkerConnection):
(InspectorBackend.WorkerConnection.sendMessageToBackend):
Two different kinds of connections. One for the Main connection
and one for Workers. Currently the list of agents we expose
on a Worker Target/Connection is hardcoded.
* UserInterface/Models/ExecutionContext.js:
(WebInspector.ExecutionContext):
(WebInspector.ExecutionContext.prototype.get target):
We may now have ExecutionContexts that mean a Page, Frames, and Workers.
To do this we include the (target, executionContextId) tuple in this object.
With this we have everything we need to evaluate JavaScript.
* UserInterface/Controllers/RuntimeManager.js:
(WebInspector.RuntimeManager):
(WebInspector.RuntimeManager.prototype.get activeExecutionContext):
(WebInspector.RuntimeManager.prototype.set activeExecutionContext):
(WebInspector.RuntimeManager.prototype.get defaultExecutionContextIdentifier): Deleted.
(WebInspector.RuntimeManager.prototype.set defaultExecutionContextIdentifier): Deleted.
Update from contextId to a full ExecutionContext object.
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow.evalCallback):
(WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
(WebInspector.RuntimeManager.prototype.saveResult):
(WebInspector.RuntimeManager.prototype.getPropertiesForRemoteObject):
(WebInspector.RuntimeManager.prototype._frameExecutionContextsCleared):
* UserInterface/Controllers/FrameResourceManager.js:
(WebInspector.FrameResourceManager.prototype.executionContextCreated):
* UserInterface/Controllers/JavaScriptLogViewController.js:
(WebInspector.JavaScriptLogViewController.prototype.consolePromptShouldCommitText):
* UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
Anywhere that wants to use the "activeExecutionContext" must use the
specific RuntimeAgent tied to that ExecutionContext's Target.
* UserInterface/Models/PropertyDescriptor.js:
(WebInspector.PropertyDescriptor.fromPayload):
* UserInterface/Protocol/RemoteObject.js:
(WebInspector.RemoteObject):
(WebInspector.RemoteObject.createFakeRemoteObject):
(WebInspector.RemoteObject.fromPrimitiveValue):
(WebInspector.RemoteObject.fromPayload):
(WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
(WebInspector.RemoteObject.prototype.deprecatedGetDisplayableProperties):
(WebInspector.RemoteObject.prototype.setPropertyValue):
(WebInspector.RemoteObject.prototype.getCollectionEntries):
(WebInspector.RemoteObject.prototype.releaseWeakCollectionEntries):
(WebInspector.RemoteObject.prototype.callFunction):
(WebInspector.RemoteObject.prototype.callFunctionJSON):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor.wrappedCallback):
(WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
(WebInspector.RemoteObject.prototype.release):
(WebInspector.RemoteObject.prototype._getPropertyDescriptors):
(WebInspector.RemoteObject.prototype._getPropertyDescriptorsResolver):
(WebInspector.RemoteObject.prototype._deprecatedGetProperties):
RemoteObject and related Model Objects now must be tied to a specific
Target, because we need to know which Target it belongs to in order to
interact with it further.
* UserInterface/Views/QuickConsole.js:
(WebInspector.QuickConsole):
(WebInspector.QuickConsole.prototype.get selectedExecutionContext):
(WebInspector.QuickConsole.prototype.set selectedExecutionContext):
(WebInspector.QuickConsole.prototype._executionContextPathComponentsToDisplay):
(WebInspector.QuickConsole.prototype._rebuildExecutionContextPathComponents):
(WebInspector.QuickConsole.prototype._framePageExecutionContextsChanged):
(WebInspector.QuickConsole.prototype._frameExecutionContextsCleared):
(WebInspector.QuickConsole.prototype._createExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
(WebInspector.QuickConsole.prototype._compareExecutionContextPathComponents):
(WebInspector.QuickConsole.prototype._insertOtherExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._removeOtherExecutionContextPathComponent):
(WebInspector.QuickConsole.prototype._insertExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._removeExecutionContextPathComponentForFrame):
(WebInspector.QuickConsole.prototype._targetAdded):
(WebInspector.QuickConsole.prototype._targetRemoved):
(WebInspector.QuickConsole.prototype._pathComponentSelected):
(WebInspector.QuickConsole.prototype.get selectedExecutionContextIdentifier): Deleted.
(WebInspector.QuickConsole.prototype.set selectedExecutionContextIdentifier): Deleted.
(WebInspector.QuickConsole.prototype._defaultExecutionContextChanged): Deleted.
Update the code from executionContextId to ExecutionContext objects.
Update the picker with ExecutionContextPathComponent for Workers (new Targets).
Generalize and cleanup the code to make it easier to follow.
2016-10-27 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Introduce Page WorkerAgent and Worker InspectorController
https://bugs.webkit.org/show_bug.cgi?id=163817
<rdar://problem/28899063>
Reviewed by Brian Burg.
* UserInterface/Main.html:
* UserInterface/Test.html:
New files.
* UserInterface/Base/Main.js:
(WebInspector.loaded):
* UserInterface/Test/Test.js:
(WebInspector.loaded):
New Observers and Managers.
* UserInterface/Protocol/WorkerObserver.js: Added.
(WebInspector.WorkerObserver.prototype.workerCreated):
(WebInspector.WorkerObserver.prototype.workerTerminated):
(WebInspector.WorkerObserver.prototype.dispatchMessageFromWorker):
(WebInspector.WorkerObserver):
* UserInterface/Controllers/WorkerManager.js: Added.
(WebInspector.WorkerManager):
(WebInspector.WorkerManager.prototype.workerCreated):
(WebInspector.WorkerManager.prototype.workerTerminated):
(WebInspector.WorkerManager.prototype.dispatchMessageFromWorker):
To be implemented with the first Worker agent implementation
when there is actually something we can do with the Worker.
2016-10-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cmd-+ doesn't "zoom in" to increase text size in the Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=163961
<rdar://problem/28895308>
Reviewed by Brian Burg.
* UserInterface/Base/Main.js:
(WebInspector.contentLoaded):
Add a duplicate set of keyboard shortcuts for the Shift variants.
2016-10-25 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove dead code in FrameTreeElement
https://bugs.webkit.org/show_bug.cgi?id=163914
Reviewed by Brian Burg.
* UserInterface/Views/FrameTreeElement.js:
2016-10-24 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Scope chain shouldn't show empty Closure sections
https://bugs.webkit.org/show_bug.cgi?id=152348
Reviewed by Joseph Pecoraro.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype._scopeChainNodeFromPayload):
* UserInterface/Models/ScopeChainNode.js:
(WebInspector.ScopeChainNode):
(WebInspector.ScopeChainNode.prototype.get empty):
Added support for new empty property.
* UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
(WebInspector.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection):
Only create and display a DetailsSection if the scope is not empty (via empty).
2016-10-24 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Improve Quick Open sorting algorithm
https://bugs.webkit.org/show_bug.cgi?id=163705
Reviewed by Joseph Pecoraro.
* UserInterface/Models/ResourceQueryResult.js:
(WebInspector.ResourceQueryResult.prototype._calculateRank.getMultiplier):
(WebInspector.ResourceQueryResult.prototype._calculateRank):
Added logic to multiply the ranking increment/decrement based on whether the current match
is part of a sequence, whether that sequence began with a special character, and the length
of the current sequence.
2016-10-19 Dean Jackson <dino@apple.com>
Support CSS Shapes Level 1 without a prefix
https://bugs.webkit.org/show_bug.cgi?id=163709
<rdar://problem/28859369>
Reviewed by Myles Maxfield.
Replace -webkit-shape-outside with shape-outside.
* UserInterface/Models/CSSKeywordCompletions.js:
2016-10-19 Aaron Chu <aaron_chu@apple.com>
Web Inspector: AXI: expose computed tree node and heading level
https://bugs.webkit.org/show_bug.cgi?id=130825
<rdar://problem/16442349>
Reviewed by Joseph Pecoraro.
Updating the Web Accessibility Inspector to display Heading Level and Hierarchical Level.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Models/DOMNode.js:
(WebInspector.DOMNode.prototype.accessibilityProperties.accessibilityPropertiesCallback):
(WebInspector.DOMNode.prototype.accessibilityProperties):
* UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
(WebInspector.DOMNodeDetailsSidebarPanel):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.accessibilityPropertiesCallback):
(WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility):
2016-10-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Styles Sidebar highlights "translate" but not "translateX"
https://bugs.webkit.org/show_bug.cgi?id=163613
<rdar://problem/28829610>
Reviewed by Timothy Hatcher.
* UserInterface/Models/CSSCompletions.js:
(WebInspector.CSSCompletions.requestCSSCompletions):
The hash table objects we pass to CodeMirror expects keys to be lowercased.
2016-10-18 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: CSS Autocompletion sometimes adds extra unexpected characters
https://bugs.webkit.org/show_bug.cgi?id=163612
<rdar://problem/28829557>
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/CodeMirrorCompletionController.js:
(WebInspector.CodeMirrorCompletionController.prototype._generateCSSCompletions):
Better handle completions in cases where we are in the middle of a property
to avoid orphaned characters, or at the end of a function name to avoid creating
duplicate parenthesis.
2016-10-18 Joseph Pecoraro <pecoraro@apple.com>
REGRESSION(r201171): Web Inspector: Timeline Recording playhead should always start immediately, not wait until first event
https://bugs.webkit.org/show_bug.cgi?id=163583
<rdar://problem/28815882>
Reviewed by Timothy Hatcher.
* UserInterface/Views/TimelineRecordingContentView.js:
(WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
Revert logic change introduced by r201171 with no explanation.
Whenever we get a start time we should use it, regardless of
of what the current time is, precisely because the backend is
informing us of the start time to use.
2016-10-17 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Add toggles for debugger pauses at console.assert failures
https://bugs.webkit.org/show_bug.cgi?id=139542
<rdar://problem/19281600>
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.prototype.get assertionsBreakpoint):
(WebInspector.DebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DebuggerManager.prototype._breakpointDisabledStateDidChange):
New breakpoint and toggling behavior.
* Localizations/en.lproj/localizedStrings.js:
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel):
(WebInspector.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint):
(WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
New breakpoint tree element behavior.
(WebInspector.DebuggerSidebarPanel.prototype.saveStateToCookie):
(WebInspector.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
Sidebar restoration if it was selected.
* UserInterface/Images/Assertion.svg: Added.
* UserInterface/Images/gtk/Assertion.svg: Added.
* UserInterface/Views/BreakpointTreeElement.css:
(.breakpoint-assertion-icon .icon):
New sidebar icon for the global breakpoint.
2016-10-15 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Cleanup parts of DebuggerManager
https://bugs.webkit.org/show_bug.cgi?id=163400
Reviewed by Timothy Hatcher.
* UserInterface/Controllers/DebuggerManager.js:
(WebInspector.DebuggerManager.restoreBreakpointsSoon):
(WebInspector.DebuggerManager.prototype.get paused):
(WebInspector.DebuggerManager.prototype.get pauseReason):
(WebInspector.DebuggerManager.prototype.get pauseData):
(WebInspector.DebuggerManager.prototype.get callFrames):
(WebInspector.DebuggerManager.prototype.get activeCallFrame):
(WebInspector.DebuggerManager.prototype.set activeCallFrame):
Put simple accessors at the top.
(WebInspector.DebuggerManager.prototype.get allExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint):
(WebInspector.DebuggerManager.prototype.get breakpoints):
(WebInspector.DebuggerManager.prototype.breakpointForIdentifier):
(WebInspector.DebuggerManager.prototype.breakpointsForSourceCode):
(WebInspector.DebuggerManager.prototype.isBreakpointRemovable):
(WebInspector.DebuggerManager.prototype.isBreakpointEditable):
(WebInspector.DebuggerManager.prototype.get breakpointsDisabledTemporarily):
Group public breakpoint state and access methods.
(WebInspector.DebuggerManager.prototype.scriptForIdentifier):
(WebInspector.DebuggerManager.prototype.scriptsForURL):
(WebInspector.DebuggerManager.prototype.get searchableScripts):
(WebInspector.DebuggerManager.prototype.get knownNonResourceScripts):
Group public script access methods.
(WebInspector.DebuggerManager.prototype.pause):
(WebInspector.DebuggerManager.prototype.resume):
(WebInspector.DebuggerManager.prototype.stepOver):
(WebInspector.DebuggerManager.prototype.stepInto):
(WebInspector.DebuggerManager.prototype.stepOut):
(WebInspector.DebuggerManager.prototype.continueToLocation):
(WebInspector.DebuggerManager.prototype.addBreakpoint):
(WebInspector.DebuggerManager.prototype.removeBreakpoint):
Group and modernize public methods that perform actions.
(WebInspector.DebuggerManager.prototype.nextBreakpointActionIdentifier):
Misc. methods.
(WebInspector.DebuggerManager.prototype.breakpointResolved):
(WebInspector.DebuggerManager.prototype.reset):
(WebInspector.DebuggerManager.prototype.playBreakpointActionSound):
(WebInspector.DebuggerManager.prototype.scriptDidParse):
(WebInspector.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint):
(WebInspector.DebuggerManager.prototype._setBreakpoint):
(WebInspector.DebuggerManager.prototype._breakpointEditablePropertyDidChange):
(WebInspector.DebuggerManager.prototype._updateBreakOnExceptionsState):
(WebInspector.DebuggerManager.prototype._associateBreakpointsWithSourceCode):
Minor cleanup in protected and private methods.
* UserInterface/Models/BreakpointAction.js:
(WebInspector.BreakpointAction):
Getting the next identifier is an action so it should be a function call.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
Remove unused parameter.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Dragging to delete a Breakpoint should never trigger a ContentView change
https://bugs.webkit.org/show_bug.cgi?id=163403
<rdar://problem/28762930>
Reviewed by Timothy Hatcher.
* UserInterface/Views/BreakpointTreeElement.js:
(WebInspector.BreakpointTreeElement.prototype.ondelete):
Signal when a breakpoint tree element will be going away because it was
deleted via the keyboard operation within the TreeOutline. This is a dirty
way to do the signal but we remove BreakpointTreeElements asynchronously
when the Breakpoint actually gets removed from the backend.
* UserInterface/Views/DebuggerSidebarPanel.js:
(WebInspector.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
Deselect a BreakpointTreeElement if it was deleted in a way other then
the delete keyboard shortcut. This ensures another TreeElement selection
doesn't force ContentView changes.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve debugger highlight when inside of getter/setter calls
https://bugs.webkit.org/show_bug.cgi?id=163428
<rdar://problem/28769061>
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When in the middle of a member expression at a '.' or '[' get the best member
expression range.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._updateExecutionRangeHighlight):
Include the character at the current position. This is useful since AST Nodes
don't give us token info but we would like to know if we are at particular tokens.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Unused Breakpoint getter/setter for "id" - should be "identifier"
https://bugs.webkit.org/show_bug.cgi?id=163395
Reviewed by Timothy Hatcher.
* UserInterface/Models/Breakpoint.js:
(WebInspector.Breakpoint.prototype.get identifier): Renamed.
(WebInspector.Breakpoint.prototype.set identifier): Renamed.
The only user is DebuggerManager which sets and gets. Previously
it was unexpectedly setting a direct property on the Breakpoint
instead of using these methods to set the member variable.
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove uses of delete in SourceCodeTextEditor
https://bugs.webkit.org/show_bug.cgi?id=163379
Reviewed by Timothy Hatcher.
Remove uses of delete and better group member variables.
One of the deletes was deleting an incorrect property.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointAdded):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointRemoved):
(WebInspector.SourceCodeTextEditor.prototype.textEditorBreakpointMoved):
(WebInspector.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedMarkedExpression):
(WebInspector.SourceCodeTextEditor.prototype._dismissEditingController):
(WebInspector.SourceCodeTextEditor.prototype.editingControllerDidFinishEditing):
2016-10-14 Joseph Pecoraro <pecoraro@apple.com>
Uncaught Exception: TypeError: this.positionToOffset is not a function - seen hovering expressions with Type Profiler enabled
https://bugs.webkit.org/show_bug.cgi?id=163405
<rdar://problem/28763953>
Reviewed by Matt Baker.
* UserInterface/Views/SourceCodeTextEditor.js:
Use correct method name, the old one must have gone away.
2016-10-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Improve support for logging Proxy objects in console
https://bugs.webkit.org/show_bug.cgi?id=163323
<rdar://problem/28432553>
Reviewed by Timothy Hatcher.
* UserInterface/Views/ConsoleMessageView.js:
(WebInspector.ConsoleMessageView.prototype._formatParameter):
Treat a Proxy like any other object.
2016-10-12 Joseph Pecoraro <pecoraro@apple.com>
Emit DebugHooks uniformly with pause locations instead of having separate pause locations and op_debug emits
https://bugs.webkit.org/show_bug.cgi?id=162809
Reviewed by Geoffrey Garen.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When pausing on the variable assignment inside for..of and for..in don't just
highlight "var foo" but include the right hand side "var foo in ..." or
"var foo of ...".
2016-10-12 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Whole program sometimes highlighted instead of just first statement
https://bugs.webkit.org/show_bug.cgi?id=163300
<rdar://problem/28723162>
Reviewed by Timothy Hatcher.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
Avoid highlighting the entire program by skipping a Program type Node.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.setExecutionLineAndColumn):
Avoid unnecessary work before content has loaded.
(WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
Avoid unnecessary indirection to get the CodeMirror editor.
2016-10-11 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove line highlight on primary execution line while stepping because it is distracting
https://bugs.webkit.org/show_bug.cgi?id=163294
<rdar://problem/28721176>
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype._updateExecutionLine):
When setting the primary execution line, remove default line highlights.
2016-10-10 Matt Baker <mattbaker@apple.com>
Web Inspector: Revealed line not highlighted in TextEditor while debugger paused
https://bugs.webkit.org/show_bug.cgi?id=163197
Reviewed by Timothy Hatcher.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
Avoid highlighting the execution line while debugging, but allow
other lines to be highlighted.
2016-10-06 Devin Rousso <dcrousso+webkit@gmail.com>
Inspector exception in `parseTextForRule()` when pasting into CSS rule selector
https://bugs.webkit.org/show_bug.cgi?id=162792
Reviewed by Matt Baker.
* UserInterface/Views/CSSStyleDeclarationSection.js:
(WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste.parseTextForRule):
Changed regular expression for matching CSS rules to allow newlines in pasted text.
2016-10-02 Devin Rousso <dcrousso+webkit@gmail.com>
Web Inspector: Clicking twice on the color swatch square should hide the color picker
https://bugs.webkit.org/show_bug.cgi?id=162759
Reviewed by Matt Baker.
* UserInterface/Views/InlineSwatch.js:
(WebInspector.InlineSwatch):
(WebInspector.InlineSwatch.prototype.didDismissPopover):
(WebInspector.InlineSwatch.prototype._swatchElementClicked):
Remove the "click" event listener when a popover is presented to prevent improper
interaction. Add the event listener back when the popover is dismissed.
2016-10-02 Matt Baker <mattbaker@apple.com>
Web Inspector: Exception thrown when hovering network waterfall graphs during reload
https://bugs.webkit.org/show_bug.cgi?id=162850
<rdar://problem/28579653>
Reviewed by Brian Burg.
* UserInterface/Views/ResourceTimelineDataGridNode.js:
(WebInspector.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
Check that the node's data grid reference is valid before use.
(WebInspector.ResourceTimelineDataGridNode):
2016-10-01 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Selection does not show up over execution highlight ranges
https://bugs.webkit.org/show_bug.cgi?id=162844
<rdar://problem/28579121>
Reviewed by Matt Baker.
* Scripts/update-codemirror-resources.rb:
* UserInterface/External/CodeMirror/mark-selection.js: Added.
* UserInterface/Main.html:
New add-on that makes selection a text marker so it can be styled
at the same level as other text markers.
* UserInterface/Views/TextEditor.css:
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext)):
Don't use execution-range-highlight styles if the text is selected.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
Enable the text selection as text markers addon.
2016-09-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Make debugger stepping highlights work in inline <script>s
https://bugs.webkit.org/show_bug.cgi?id=162753
<rdar://problem/28551332>
Reviewed by Brian Burg.
* UserInterface/Models/TextRange.js:
(WebInspector.TextRange.prototype.contains):
Check if a given line/column falls within this range.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor.prototype._getAssociatedScript):
If we are in a Document resource find the associated script at a given position.
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
When comparing offsets to SyntaxTree offsets, the SyntaxTree's offset of 0 is the
first character of the Script, which differs from the current SourceCode's offset.
Adjust the offset by the Script's startOffset.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor.prototype.currentPositionToOriginalPosition):
(WebInspector.TextEditor.prototype._updateExecutionRangeHighlight):
Pass both the original offset and original position to the delegate.
2016-09-30 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Stepping through `a(); b(); c();` it is unclear where we are and what is about to execute
https://bugs.webkit.org/show_bug.cgi?id=161658
<rdar://problem/28181254>
Reviewed by Geoffrey Garen.
* UserInterface/Models/Script.js:
(WebInspector.Script.prototype.requestScriptSyntaxTree):
Fix first calls to requestScriptSyntaxTree. They were getting an uncaught
exception because the content argument was missing.
* UserInterface/Models/ScriptSyntaxTree.js:
(WebInspector.ScriptSyntaxTree.prototype.containersOfOffset):
Find all AST nodes that contain a particular offset.
* UserInterface/Views/SourceCodeTextEditor.js:
(WebInspector.SourceCodeTextEditor):
(WebInspector.SourceCodeTextEditor.prototype.close):
(WebInspector.SourceCodeTextEditor.prototype._activeCallFrameDidChange):
(WebInspector.SourceCodeTextEditor.prototype._activeCallFrameSourceCodeLocationChanged):
(WebInspector.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
Provide a good highlight range for a given offset. This is normally the start
of a statement/expression, inside a statement/expression, or the closing brace
of a function (leaving a function). Provide good ranges for each of these.
* UserInterface/Views/TextEditor.js:
(WebInspector.TextEditor):
(WebInspector.TextEditor.set string.update):
(WebInspector.TextEditor.prototype.set string):
(WebInspector.TextEditor.prototype.setExecutionLineAndColumn):
(WebInspector.TextEditor.prototype.revealPosition.revealAndHighlightLine):
(WebInspector.TextEditor.prototype.revealPosition):
(WebInspector.TextEditor.prototype.currentPositionToOriginalOffset):
(WebInspector.TextEditor.prototype._updateAfterFormatting):
(WebInspector.TextEditor.prototype.set executionLineNumber): Deleted.
(WebInspector.TextEditor.prototype.set executionColumnNumber): Deleted.
(WebInspector.TextEditor.prototype._updateExecutionLine.update): Deleted.
Always set the execution line and column together, to simplify how we update highlights.
(WebInspector.TextEditor.prototype._clearMultilineExecutionLineHighlights):
(WebInspector.TextEditor.prototype._updateExecutionLine):
When updating the main highlight clear any multi-line highlights.
(WebInspector.TextEditor.prototype._updateExecutionRangeHighlight):
Ask the delegate for a specific highlight range. If provided use that range,
otherwise just highlight the end of the line. Once we know the range, if it
is multiple lines, give the extra lines the full line highlight as well.
Also make adjustments, such as not highlighting trailing whitespace.
* UserInterface/Views/TextEditor.css:
(.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-line .CodeMirror-matchingbracket):
(.text-editor > .CodeMirror .execution-range-highlight):
Styles for execution lines and execution range highlights.
2016-09-29 Aaron Chu <aaron_chu@apple.com>
Web Inspector: AXI: linkified refs to #document and #text are not usually navigable nodes; consider delinkifying them
https://bugs.webkit.org/show_bug.cgi?id=130600
<rdar://problem/16391333>
Reviewed by Brian Burg.
Removing link style for non-navigable nodes by first
checking nodeType of the node.
* UserInterface/Base/DOMUtilities.js:
(WebInspector.linkifyNodeReference):
2016-09-27 Matt Baker <mattbaker@apple.com>
Web Inspector: Refreshing while in Timelines-tab causes negative timestamps in Network-tab
https://bugs.webkit.org/show_bug.cgi?id=160051
<rdar://problem/27480122>
Reviewed by Brian Burg.
* UserInterface/Views/NetworkGridContentView.js:
(WebInspector.NetworkGridContentView.prototype.get startTime):
(WebInspector.NetworkGridContentView.prototype.get zeroTime):
Use the cached start time for graph data source properties instead of
relying on the ruler, which requires a layout in order to be updated
for the first time.
2016-09-27 Matt Baker <mattbaker@apple.com>
Web Inspector: Unfocusing / Focusing inspector window should not change ContentView
https://bugs.webkit.org/show_bug.cgi?id=162572
<rdar://problem/28479562>
Reviewed by Brian Burg.
Improve NavigationSidebarPanel logic for coordinating selection between trees.
When tree selection changes, the most recent selection should be restored
the next time the tree is focused.
The sidebar should also handle focusing a tree for the first time, in
which no previous selection exists, and focusing a tree that has had its
previous selection filtered out (hidden).
* UserInterface/Views/NavigationSidebarPanel.js:
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineDidFocus):
(WebInspector.NavigationSidebarPanel.prototype._contentTreeOutlineTreeSelectionDidChange):
Restoring the last deselected element, instead of the last selected element
only works when the selection is moving from one tree to another. When
the elements belong to the same tree the newly selected element won't
be saved until the next selection change. If the window loses and regains
the focus before then, the tree will restore the previous selection,
effectively reverting the last selection change.
2016-09-27 Tomas Popela <tpopela@redhat.com>
[GTK] Mac defaults are used for key shortcuts on Linux
https://bugs.webkit.org/show_bug.cgi?id=162564
Don't set Mac's default keymap as a fallthrough for CodeMirror when we
are not on Mac.
Reviewed by Carlos Garcia Campos.
* UserInterface/Test.html: Include Platform.js for the
WebInspector.Platform definition.
* UserInterface/Views/CodeMirrorAdditions.js:
2016-09-26 Matt Baker <mattbaker@apple.com>
Web Inspector: Box Model values not updated when DOM node styles change
https://bugs.webkit.org/show_bug.cgi?id=162525
Reviewed by Brian Burg.
The Box Model section should refresh itself when the selected node's
computed style changes. This is necessary since the Styles sidebar
doesn't always refresh its sections on node changes.
* UserInterface/Views/BoxModelDetailsSectionRow.js:
(WebInspector.BoxModelDetailsSectionRow.prototype.set nodeStyles):
Refresh metrics whenever the computed style changes.
(WebInspector.BoxModelDetailsSectionRow.prototype._getBox):
(WebInspector.BoxModelDetailsSectionRow.prototype._getComponentSuffix):
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createValueElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement):
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics):
Drive-by cleanup to make this large function easier to read.
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createElement): Deleted.
Renamed createValueElement.
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaWidthElement): Deleted.
(WebInspector.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaHeightElement): Deleted.
Combined these into a single function taking a property name (width or height).
== Rolled over to ChangeLog-2016-09-26 ==