| 2019-05-08 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r244952. |
| |
| Caused inspector to appear blank. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Provide UIString descriptions to improve |
| localizations" |
| https://bugs.webkit.org/show_bug.cgi?id=195132 |
| https://trac.webkit.org/changeset/244952 |
| |
| 2019-05-04 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Provide UIString descriptions to improve localizations |
| https://bugs.webkit.org/show_bug.cgi?id=195132 |
| <rdar://problem/48457817> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/LoadLocalizedStrings.js: |
| (WI.UIString): |
| (WI.repeatedUIString.timelineRecordLayout): |
| (WI.repeatedUIString.timelineRecordPaint): |
| (WI.repeatedUIString.timelineRecordComposite): |
| (WI.repeatedUIString.allExceptions): |
| (WI.repeatedUIString.uncaughtExceptions): |
| (WI.repeatedUIString.assertionFailures): |
| (WI.repeatedUIString.allRequests): |
| (WI.repeatedUIString.fetch): |
| (WI.repeatedUIString.revealInDOMTree): |
| * UserInterface/Models/LayoutTimelineRecord.js: |
| (WI.LayoutTimelineRecord.displayNameForEventType): |
| * UserInterface/Models/RenderingFrameTimelineRecord.js: |
| (WI.RenderingFrameTimelineRecord.displayNameForTaskType): |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.displayNameForType): |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.layout): |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.displayNameForSampleType): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement.displayNameForType): |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement.prototype.populateContextMenu): |
| (WI.DOMNodeTreeElement): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._populateTagContextMenu): |
| (WI.DOMTreeElement.prototype._populateNodeContextMenu): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointMouseDown): |
| (WI.DebuggerSidebarPanel): |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| (WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.shortDisplayNameForResourceType): |
| (WI.NetworkTableContentView.prototype.initialLayout): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointMouseDown): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| |
| 2019-05-04 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: use the same green color for modified properties as in Changes panel |
| https://bugs.webkit.org/show_bug.cgi?id=197538 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.css: |
| (.changes-panel .css-property-line.added): |
| (.changes-panel .css-property-line.removed): |
| (.changes-panel .css-property-line.added::before): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property.modified): |
| (.spreadsheet-style-declaration-editor .property.modified:not(.selected)): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| |
| 2019-05-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: dragging a node to the console should log the node |
| https://bugs.webkit.org/show_bug.cgi?id=197330 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype._ondragstart): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| (WI.LogContentView.prototype._handleDragOver): Added. |
| (WI.LogContentView.prototype._handleDrop): Added. |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole): |
| (WI.QuickConsole.prototype._handleDragOver): Added. |
| (WI.QuickConsole.prototype._handleDrop): Added. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| Drive-by: update the format to be more unique. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-05-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: rename "low power" to "display composited" |
| https://bugs.webkit.org/show_bug.cgi?id=197296 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Removed specific ChangeLog entries since it is almost entirely mechanical changes. |
| |
| * UserInterface/Protocol/DOMObserver.js: |
| * UserInterface/Controllers/DOMManager.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| * UserInterface/Models/DOMNode.js: |
| * UserInterface/Models/MediaInstrument.js: |
| * UserInterface/Models/MediaTimelineRecord.js: |
| * UserInterface/Models/TimelineRecording.js: |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| * UserInterface/Views/DOMEventsBreakdownView.css: |
| * UserInterface/Views/NetworkTableContentView.js: |
| * UserInterface/Views/NetworkTableContentView.css: |
| * UserInterface/Views/TimelineIcons.css: |
| * UserInterface/Views/TimelineTabContentView.js: |
| * UserInterface/Images/PowerEfficientPlaybackStateChanged.svg: Added. |
| * UserInterface/Images/LowPower.svg: Removed. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-05-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Record actions performed on WebGL2RenderingContext |
| https://bugs.webkit.org/show_bug.cgi?id=176008 |
| <rdar://problem/34213884> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.fromPayload): |
| (WI.Recording.displayNameForSwizzleType): |
| (WI.Recording.prototype.async swizzle): |
| (WI.Recording.prototype.createContext): |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.constantNameForParameter): |
| (WI.RecordingAction._prototypeForType): |
| (WI.RecordingAction.prototype.async swizzle): |
| Treat all actions with a snapshot as being a "visible" action. |
| |
| * UserInterface/Views/CanvasTabContentView.css: |
| (.content-view.tab.canvas .navigation-bar > .item .canvas:matches(.webgl, .webgl2, .webgpu, .webmetal) .icon): Added. |
| (.content-view.tab.canvas .navigation-bar > .item .canvas.webgl): Deleted. |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.initialLayout): |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.shown): |
| (WI.CanvasSidebarPanel.prototype._canvasChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem): |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.get navigationItems): |
| (WI.RecordingContentView.prototype.shown): |
| (WI.RecordingContentView.prototype.initialLayout): |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._generateDOM.createParameterElement): |
| |
| 2019-05-02 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: borders between section should be lighter than background |
| https://bugs.webkit.org/show_bug.cgi?id=197551 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section .details-section): |
| |
| 2019-04-29 Alex Christensen <achristensen@webkit.org> |
| |
| <rdar://problem/50299396> Fix internal High Sierra build |
| https://bugs.webkit.org/show_bug.cgi?id=197388 |
| |
| * Configurations/Base.xcconfig: |
| |
| 2019-04-26 Jessie Berlin <jberlin@webkit.org> |
| |
| Add new mac target numbers |
| https://bugs.webkit.org/show_bug.cgi?id=197313 |
| |
| Reviewed by Alex Christensen. |
| |
| * Configurations/Version.xcconfig: |
| |
| 2019-04-25 Alex Christensen <achristensen@webkit.org> |
| |
| Start using C++17 |
| https://bugs.webkit.org/show_bug.cgi?id=197131 |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2019-04-24 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: don't start property selection when pressing right mouse button |
| https://bugs.webkit.org/show_bug.cgi?id=197242 |
| <rdar://problem/50180380> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| |
| 2019-04-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: importing a HAR with an active detail view shows no content |
| https://bugs.webkit.org/show_bug.cgi?id=197223 |
| |
| Reviewed by Timothy Hatcher. |
| |
| When hiding the detail view, we force a `layout` of the Network table, which causes the |
| cached row count to be set to `0`, which prevents the `reloadDataAddedToEndOnly` from |
| rendering anything since the `WI.Table` thinks it has no rows. |
| |
| Given that all of the users of `WI.Table` are backed by an array, we don't need to cache the |
| number of rows since `.length` is an extremely cheap operation. In turn, this guarantees |
| that we are always rendering with an accurate value. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.get numberOfRows): |
| (WI.Table.prototype.reloadData): |
| (WI.Table.prototype._removeRows): |
| |
| 2019-04-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r238168): Network: preserve log doesn't show main frame main resource changes |
| https://bugs.webkit.org/show_bug.cgi?id=197220 |
| <rdar://problem/49960464> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype._addCollection): |
| (WI.NetworkTableContentView.prototype._resetCollection): Added. |
| (WI.NetworkTableContentView.prototype._changeCollection): |
| (WI.NetworkTableContentView.prototype._mainResourceDidChange): |
| We want to add the frame's main resource in the case that it's the main frame, but we also |
| want to clear the main collection of data (e.g. if viewing an imported HAR). |
| Drive-by: `_groupByDOMNodeNavigationItem` was renamed in a previous patch. |
| |
| 2019-04-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: support drag/drop for importing |
| https://bugs.webkit.org/show_bug.cgi?id=197221 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTabContentView.js: |
| (WI.NetworkTabContentView.prototype.async.handleFileDrop): Added. |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.processHAR): Added. |
| (WI.NetworkTableContentView.prototype._importHAR): |
| |
| * UserInterface/Base/FileUtilities.js: |
| (WI.FileUtilities.async readText): |
| Only `await` if the result is a `Promise`. |
| |
| 2019-04-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: null is not an object (evaluating 'this.ownerDocument.frameIdentifier') |
| https://bugs.webkit.org/show_bug.cgi?id=196420 |
| <rdar://problem/49444205> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode): |
| (WI.DOMNode.prototype.get frame): Added. |
| (WI.DOMNode.prototype.get frameIdentifier): Deleted. |
| Modify the existing `frameId` to represent the owner frame of the node, rather than the |
| frame it holds (in the case of an `<iframe>`). |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.domBreakpointsForNode): |
| (WI.DOMDebuggerManager.prototype._detachDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._nodeInserted): |
| (WI.DOMDebuggerManager.prototype._nodeRemoved): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._populateTagContextMenu): |
| (WI.DOMTreeElement.prototype._buildAttributeDOM): |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole.prototype._selectExecutionContext): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._highlightNodesWithSelector): |
| |
| 2019-04-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: no obvious way of switching to the overview when viewing an imported recording |
| https://bugs.webkit.org/show_bug.cgi?id=197178 |
| <rdar://problem/50106641> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Expand the idea of "imported" recordings to include "saved" recordings, ones whose |
| underlying <canvas> was destroyed. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype.attached): |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| (WI.CanvasTabContentView.prototype._addRecording): |
| (WI.CanvasTabContentView.prototype._handleRecordingSavedOrStopped): Added. |
| (WI.CanvasTabContentView.prototype.initialLayout): Deleted. |
| (WI.CanvasTabContentView.prototype._recordingImportedOrStopped): Deleted. |
| Make the "Saved Recordings" folder a child of the "Overview" so that the "Overview" path |
| component is always visible/clickable. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype.contentViewAdded): |
| (WI.CanvasOverviewContentView.prototype.attached): |
| (WI.CanvasOverviewContentView.prototype.detached): |
| (WI.CanvasOverviewContentView.prototype._addSavedRecording): Added. |
| (WI.CanvasOverviewContentView.prototype._handleRecordingSaved): Added. |
| (WI.CanvasOverviewContentView.prototype._handleSavedRecordingClicked): Added. |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas.saved-recordings): Added. |
| (.content-view.canvas-overview .content-view.canvas.saved-recordings .tree-outline): Added. |
| (.content-view.canvas-overview .content-view.canvas.saved-recordings .tree-outline > .item.recording > .icon): Added. |
| Add a card for "Saved Recordings" that mimics the style of regular canvas cards. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager): |
| (WI.CanvasManager.prototype.get savedRecordings): Added. |
| (WI.CanvasManager.prototype.async processJSON): |
| (WI.CanvasManager.prototype.disable): |
| (WI.CanvasManager.prototype._removeCanvas): |
| (WI.CanvasManager.prototype.get importedRecordings): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-04-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Sources: auto-continue breakpoint triangle is incorrectly positioned |
| https://bugs.webkit.org/show_bug.cgi?id=197179 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/BreakpointTreeElement.css: |
| (.item.breakpoint .status): Added. |
| (.item.breakpoint .status > .status-image.auto-continue::after): |
| |
| 2019-04-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: CPU: remove extra border under last section |
| https://bugs.webkit.org/show_bug.cgi?id=197120 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content > .overview): |
| (.timeline-view.cpu > .content > .overview:not(:last-child)): Added. |
| |
| 2019-04-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: adjust default Media timeline column widths |
| https://bugs.webkit.org/show_bug.cgi?id=197114 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/MediaTimelineView.js: |
| (WI.MediaTimelineView): |
| |
| 2019-04-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r244155): pressing down expands folders in trees |
| https://bugs.webkit.org/show_bug.cgi?id=197051 |
| <rdar://problem/50006414> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableItem): |
| Skip hidden items when traversing the tree. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.ondelete): |
| Reveal all items about to be deleted so that the above change won't skip any siblings. |
| |
| 2019-04-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: enable WebGL2 for inspector page |
| https://bugs.webkit.org/show_bug.cgi?id=196932 |
| <rdar://problem/49916213> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction._prototypeForType): |
| (WI.RecordingAction.prototype.process.getContent): |
| Add additional checks for `ImageBitmapRenderingContext` and `WebGLRenderingContext`. |
| |
| 2019-04-17 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Navigating to resource sometimes shows different resource |
| https://bugs.webkit.org/show_bug.cgi?id=195978 |
| <rdar://problem/49043191> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.cancelRestoringState): |
| Reset _pendingViewStateCookie so _checkElementsForPendingViewStateCookie could exit early. |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype.initialLayout): |
| (WI.ResourceSidebarPanel.prototype._mainFrameMainResourceDidChange): |
| (WI.ResourceSidebarPanel.prototype._createMainFrameTreeElement): |
| Don't try to change content view on initialLayout. |
| |
| 2019-04-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Include # of Network Requests in the Statistics section |
| https://bugs.webkit.org/show_bug.cgi?id=197039 |
| <rdar://problem/49996299> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype._computeStatisticsData): |
| (WI.CPUTimelineView.prototype._clearStatistics): |
| Add the number of network requests started in the selected range. |
| |
| 2019-04-17 Timothy Hatcher <timothy@apple.com> |
| |
| Rename `supported-color-schemes` to `color-scheme`. |
| https://bugs.webkit.org/show_bug.cgi?id=197016 |
| rdar://problem/49980259 |
| |
| Reviewed by Simon Fraser. |
| |
| * UserInterface/Views/Main.css: |
| (:root): |
| |
| 2019-04-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: imported recordings aren't processed when the navigation sidebar is collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=196921 |
| <rdar://problem/49910815> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype.initialLayout): |
| |
| 2019-04-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Extension scripts with parse errors do not show up in Web Inspector |
| https://bugs.webkit.org/show_bug.cgi?id=196996 |
| <rdar://problem/47054804> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.scriptDidFail): |
| Create a LocalScript that can be linked to but ignore it |
| if we already have a Resource for the URL. |
| |
| * UserInterface/Protocol/DebuggerObserver.js: |
| (WI.DebuggerObserver.prototype.scriptFailedToParse): |
| Let DebuggerManager potentially create a script for this. |
| |
| * UserInterface/Models/Script.js: |
| (WI.Script): |
| Local scripts provide a null id and id is not required below. |
| |
| 2019-04-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Worker imported scripts not showing up in Open Quickly dialog if inspector open after workers exist |
| https://bugs.webkit.org/show_bug.cgi?id=196986 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._addScriptsForTarget): |
| We were unnecessary skipping Scripts that do not have a sourceURL but do |
| have a URL, which ends up being Worker populated scripts. |
| |
| 2019-04-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION(r238168) Web Inspector: <iframe src=...> request does not show up in Network Tab |
| https://bugs.webkit.org/show_bug.cgi?id=193505 |
| <rdar://problem/47325957> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype._handleFrameWasAdded): |
| Handle new frames by adding the frame's main resource. |
| |
| 2019-04-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'this._contentViewContainer.currentContentView.selectionPathComponents') |
| https://bugs.webkit.org/show_bug.cgi?id=196936 |
| <rdar://problem/49917789> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView.prototype.showHeapSnapshotTimelineRecord): |
| (WI.HeapAllocationsTimelineView.prototype.get navigationItems): |
| (WI.HeapAllocationsTimelineView.prototype.get selectionPathComponents): |
| Drive-by: when selecting a record, force it to be visible before selecting it, as otherwise |
| the selection events won't be fired. |
| |
| * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js: |
| (WI.HeapAllocationsTimelineOverviewGraph.prototype.layout): |
| Drive-by: ensure that clicking on a [S] heap snapshot record icon actually selects the record. |
| |
| 2019-04-16 Devin Rousso <drousso@apple.com> |
| |
| Unprefix -webkit-sticky |
| https://bugs.webkit.org/show_bug.cgi?id=196962 |
| <rdar://problem/40903458> |
| |
| Reviewed by Simon Fraser. |
| |
| Replace all `-webkit-sticky` with `sticky`. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| * UserInterface/Views/AuditTestCaseContentView.css: |
| (.content-view-container > .content-view.audit-test-case > header): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group.contains-test-case > header): |
| * UserInterface/Views/ChangesDetailsSidebarPanel.css: |
| (.changes-panel .resource-section > .header): |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section > .header): |
| * UserInterface/Views/NetworkDetailView.css: |
| (.network-detail .navigation-bar): |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings .navigation-bar): |
| * UserInterface/Views/Table.css: |
| (.table > .header): |
| |
| 2019-04-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove unused WI.DOMTreeDataGrid |
| https://bugs.webkit.org/show_bug.cgi?id=196958 |
| <rdar://problem/49931383> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DOMTreeDataGrid.css: Removed. |
| * UserInterface/Views/DOMTreeDataGrid.js: Removed. |
| * UserInterface/Views/DOMTreeDataGridNode.js: Removed. |
| * UserInterface/Main.html: |
| |
| 2019-04-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Storage: values truncated in Local/Session table |
| https://bugs.webkit.org/show_bug.cgi?id=178318 |
| <rdar://problem/34998581> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid): |
| (WI.DataGrid.prototype._copyTextForDataGridNode): |
| * UserInterface/Views/TimelineDataGrid.js: |
| (WI.TimelineDataGrid): |
| Refactor `WI.DataGrid` constructor to allow for more optional arguments. |
| Introduce a new optional argument `copyCallback` that can be used to override the text that |
| would be copied for any `WI.DataGridNode` in any column. |
| |
| * UserInterface/Views/DOMStorageContentView.js: |
| (WI.DOMStorageContentView): |
| (WI.DOMStorageContentView.prototype.itemAdded): |
| (WI.DOMStorageContentView.prototype.itemUpdated): |
| (WI.DOMStorageContentView.prototype._populate): |
| (WI.DOMStorageContentView.prototype._dataGridCopy): Added. |
| Save the full non-truncated value as part of the `WI.DataGridNode`'s `data`. When copying, |
| use the full non-truncated value instead of what was shown in the DOM. |
| |
| 2019-04-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: DOM Nodes should not show $0 when selected in Console area |
| https://bugs.webkit.org/show_bug.cgi?id=196953 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| Enable showing the last selected element. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| Make parameters explicit. Drop "selectable" which was always true. |
| And add a new option for adding a class name. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom.show-last-selected li.last-selected > span::after): |
| (.tree-outline.dom.show-last-selected:focus li.last-selected > span::after): |
| Only show the "= $0" for a DOM tree that has enabled showing the last selected element. |
| |
| * UserInterface/Views/FormattedValue.css: |
| (.formatted-node > .tree-outline.dom li.selected .selection-area): |
| Don't show the selection-area for a console formatted node. |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: update sheet rect whenever inspector window size changes |
| https://bugs.webkit.org/show_bug.cgi?id=196942 |
| <rdar://problem/49920241> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI._windowResized): |
| (WI._updateSheetRect): Added. |
| |
| 2019-04-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Unreviewed, fix typo in a comment. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Heap: don't use recursion when calculating root paths |
| https://bugs.webkit.org/show_bug.cgi?id=196890 |
| <rdar://problem/49870751> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js: |
| (HeapSnapshot.prototype.shortestGCRootPath): |
| (HeapSnapshot.prototype._determineGCRootPaths): |
| (HeapSnapshot.prototype._gcRootPathes.visitNode): Deleted. |
| (HeapSnapshot.prototype._gcRootPathes): Deleted. |
| |
| 2019-04-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: SameSite parsing should be stricter |
| https://bugs.webkit.org/show_bug.cgi?id=196927 |
| <rdar://problem/42291601> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/Cookie.js: |
| (WI.Cookie.parseSameSiteAttributeValue): |
| |
| 2019-04-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Energy impact popover flickers |
| https://bugs.webkit.org/show_bug.cgi?id=196931 |
| <rdar://problem/49569122> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.initialLayout): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r244268): Canvas: navigation sidebar no longer appears |
| https://bugs.webkit.org/show_bug.cgi?id=196920 |
| <rdar://problem/49910618> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ContentBrowserTabContentView.js: |
| (WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel): |
| Now that we no longer call `addSubview` when adding a sidebar panel, we can't check to see |
| if `parentSidebar` has been set, as that is just an alias for `parentView`. |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOMDebugger: move breakpoint storage to use `WI.ObjectStore` |
| https://bugs.webkit.org/show_bug.cgi?id=196231 |
| <rdar://problem/49236864> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.prototype.addDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeDOMBreakpointsForNode): |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._saveDOMBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype._saveURLBreakpoints): Deleted. |
| |
| * UserInterface/Models/DOMBreakpoint.js: |
| (WI.DOMBreakpoint.prototype.saveIdentityToCookie): |
| (WI.DOMBreakpoint.prototype.toJSON): Added. |
| (WI.DOMBreakpoint.prototype.get serializableInfo): Deleted. |
| * UserInterface/Models/EventBreakpoint.js: |
| (WI.EventBreakpoint.prototype.saveIdentityToCookie): |
| (WI.EventBreakpoint.prototype.toJSON): Added. |
| (WI.EventBreakpoint.prototype.get serializableInfo): Deleted. |
| * UserInterface/Models/URLBreakpoint.js: |
| (WI.URLBreakpoint.prototype.saveIdentityToCookie): |
| (WI.URLBreakpoint.prototype.toJSON): Added. |
| (WI.URLBreakpoint.prototype.get serializableInfo): Deleted. |
| Replace `get serializableInfo` with `toJSON` as required by `WI.ObjectStore`. |
| |
| * UserInterface/Base/ObjectStore.js: |
| (WI.ObjectStore._open): |
| Increment version. |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: drag/drop over the sidebar should load an imported file in Canvas/Audit tab |
| https://bugs.webkit.org/show_bug.cgi?id=196873 |
| <rdar://problem/49858190> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI._handleDragOver): Added. |
| (WI._handleDrop): Added. |
| (WI._dragOver): Deleted. |
| * UserInterface/Views/AuditTabContentView.js: |
| (WI.AuditTabContentView): |
| (WI.AuditTabContentView.prototype.async handleFileDrop): Added. |
| (WI.AuditTabContentView.prototype._handleDragOver): Deleted. |
| (WI.AuditTabContentView.prototype._handleDrop): Deleted. |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype.async handleFileDrop): Added. |
| (WI.CanvasTabContentView.prototype._handleDragOver): Deleted. |
| (WI.CanvasTabContentView.prototype._handleDrop): Deleted. |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.prototype.async handleFileDrop): Added. |
| Check whether the current tab is able to handle a file drop, and if so, don't prevent the |
| drag from occuring. This now allows the user to drop anywhere on the Web Inspector area to |
| import files, so long as the relevant tab is currently selected. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.async processJSON): Added. |
| (WI.CanvasManager.prototype.processJSON): Deleted. |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.async processJSON): Added. |
| (WI.TimelineManager.prototype.processJSON): Deleted. |
| Make `async` to match other `processJSON` functions. |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Heap: logging an object from a snapshot shouldn't use the "special" style if the object is reachable |
| https://bugs.webkit.org/show_bug.cgi?id=196889 |
| <rdar://problem/49870693> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/HeapSnapshotInstanceDataGridNode.js: |
| (WI.HeapSnapshotInstanceDataGridNode.logHeapSnapshotNode): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: deleting a special breakpoint should disable it |
| https://bugs.webkit.org/show_bug.cgi?id=196737 |
| <rdar://problem/49740680> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement.prototype.ondelete): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: null is not an object (evaluating 'this.selectedTreeElement.reveal') |
| https://bugs.webkit.org/show_bug.cgi?id=196804 |
| <rdar://problem/49800708> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.update): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: Can't find variable: WebGL2RenderingContext |
| https://bugs.webkit.org/show_bug.cgi?id=196874 |
| <rdar://problem/49858912> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.prototype.createContext): |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process.getContent): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: sidebar panels shouldn't be added as subviews unless visible |
| https://bugs.webkit.org/show_bug.cgi?id=196888 |
| <rdar://problem/49870659> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/Sidebar.js: |
| (WI.Sidebar.prototype.insertSidebarPanel): |
| (WI.Sidebar.prototype.removeSidebarPanel): |
| (WI.Sidebar.prototype.set selectedSidebarPanel): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: event listener change events should only be fired for the selected node and it's ancestors |
| https://bugs.webkit.org/show_bug.cgi?id=196887 |
| <rdar://problem/49870627> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode.prototype.getEventListeners): |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: replace all uses of `this` with `WI` in Main.js/Test.js |
| https://bugs.webkit.org/show_bug.cgi?id=196795 |
| <rdar://problem/49796618> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Test/Test.js: |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Heap: snapshots taken manually don't appear in the list |
| https://bugs.webkit.org/show_bug.cgi?id=196900 |
| <rdar://problem/49880278> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView): |
| (WI.HeapAllocationsTimelineView.prototype.layout): |
| (WI.HeapAllocationsTimelineView.prototype._importButtonNavigationItemClicked): |
| (WI.HeapAllocationsTimelineView.prototype._takeHeapSnapshotClicked): |
| Drive-by: only show heap snapshots for the selected range. |
| |
| * UserInterface/Views/TimelineView.js: |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineViewNeedsEntireSelectedRange): Added. |
| Drive-by: taking (or importing) a heap snapshot should select the entire range so that the |
| new record will appear in the list of heap snapshots. |
| |
| 2019-04-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r244157): Timelines: ruler size appears wrong on first layout |
| https://bugs.webkit.org/show_bug.cgi?id=196901 |
| <rdar://problem/49880539> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype._layoutSubtree): |
| Ensure that the forced override of the layout reason during the initial layout doesn't |
| affect subviews. |
| |
| * UserInterface/Views/ConsoleDrawer.js: |
| (WI.ConsoleDrawer.prototype.sizeDidChange): Added. |
| (WI.ConsoleDrawer.prototype.layout): Deleted. |
| * UserInterface/Views/ConsolePrompt.js: |
| (WI.ConsolePrompt.prototype.sizeDidChange): Added. |
| (WI.ConsolePrompt.prototype.layout): Deleted. |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.sizeDidChange): Added. |
| (WI.DOMTreeContentView.prototype.layout): |
| * UserInterface/Views/NavigationBar.js: |
| (WI.NavigationBar.prototype.sizeDidChange): Added. |
| (WI.NavigationBar.prototype.layout): |
| (WI.NavigationBar.prototype._updateContent): Added. |
| (WI.NavigationBar.prototype._updateContent.forceItemHidden): Added. |
| (WI.NavigationBar.prototype._updateContent.isDivider): Added. |
| (WI.NavigationBar.prototype._updateContent.calculateVisibleItemWidth): Added. |
| (WI.NavigationBar.prototype.layout.forceItemHidden): Deleted. |
| (WI.NavigationBar.prototype.layout.isDivider): Deleted. |
| (WI.NavigationBar.prototype.layout.calculateVisibleItemWidth): Deleted. |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.sizeDidChange): Added. |
| (WI.TabBrowser.prototype.layout): Deleted. |
| Move logic in `layout` to `sizeDidChange` where applicable. |
| |
| 2019-04-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r244195): Timelines: unable to take heap snapshot |
| https://bugs.webkit.org/show_bug.cgi?id=196832 |
| <rdar://problem/49828862> |
| |
| Reviewed by Simon Fraser. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.heapSnapshotAdded): |
| (WI.TimelineManager.prototype._addRecord): |
| Heap snapshots can be taken outside of a timeline recording, so remove the early return (and |
| assertion) that checks for an active recording before adding the heap snapshot record. |
| |
| 2019-04-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: can't reliably stop/start a recording |
| https://bugs.webkit.org/show_bug.cgi?id=196778 |
| <rdar://problem/47606798> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rather than have a binary state of capturing/not-capturing, we should use a four state: |
| 1. inactive (when the backend has stopped capturing) |
| 2. starting (when the frontend requests capturing to start) |
| 3. active (when the backend has started capturing) |
| 4. stopping (when the frontend requests capturing to stop) |
| |
| Capturing is considered "on" when not in an "inactive" state. Prevent the frontend from |
| starting/stopping capturing unless we're in a "stable" ("inactive" or "active") state, not a |
| "transition" ("starting" or "stopping") state. |
| |
| One "side effect" of this change is that since the capturing is considered active until the |
| backend has stopped capturing, we will continue to process records in the frontend even if |
| the frontend has requested to stop capturing. <https://webkit.org/b/152904> |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype.get capturingState): Added. |
| (WI.TimelineManager.prototype.reset): |
| (WI.TimelineManager.prototype.get activeRecording): |
| (WI.TimelineManager.prototype.set autoCaptureOnPageLoad): |
| (WI.TimelineManager.prototype.isCapturing): |
| (WI.TimelineManager.prototype.startCapturing): |
| (WI.TimelineManager.prototype.stopCapturing): |
| (WI.TimelineManager.prototype.processJSON): |
| (WI.TimelineManager.prototype.capturingStarted): |
| (WI.TimelineManager.prototype.capturingStopped): |
| (WI.TimelineManager.prototype.autoCaptureStarted): |
| (WI.TimelineManager.prototype.eventRecorded): |
| (WI.TimelineManager.prototype.pageDOMContentLoadedEventFired): |
| (WI.TimelineManager.prototype.pageLoadEventFired): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype.memoryTrackingUpdated): |
| (WI.TimelineManager.prototype.memoryTrackingCompleted): |
| (WI.TimelineManager.prototype.heapTrackingStarted): |
| (WI.TimelineManager.prototype.heapTrackingCompleted): |
| (WI.TimelineManager.prototype.heapSnapshotAdded): |
| (WI.TimelineManager.prototype._updateCapturingState): Added. |
| (WI.TimelineManager.prototype._processRecord): |
| (WI.TimelineManager.prototype._processEvent): |
| (WI.TimelineManager.prototype._loadNewRecording): |
| (WI.TimelineManager.prototype._addRecord): |
| (WI.TimelineManager.prototype._attemptAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._stopAutoRecordingSoon): |
| (WI.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): |
| (WI.TimelineManager.prototype._resourceWasAdded): |
| (WI.TimelineManager.prototype._garbageCollected): |
| (WI.TimelineManager.prototype._memoryPressure): |
| (WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged): |
| (WI.TimelineManager.prototype.scriptProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): |
| (WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): |
| (WI.TimelineManager.prototype.unloadRecording): Deleted. |
| (WI.TimelineManager.prototype.programmaticCaptureStarted): Deleted. |
| (WI.TimelineManager.prototype.programmaticCaptureStopped): Deleted. |
| (WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted): Deleted. |
| (WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped): Deleted. |
| |
| * UserInterface/Protocol/ScriptProfilerObserver.js: |
| (WI.ScriptProfilerObserver.prototype.trackingComplete): |
| (WI.ScriptProfilerObserver.prototype.programmaticCaptureStarted): |
| (WI.ScriptProfilerObserver.prototype.programmaticCaptureStopped): |
| * UserInterface/Protocol/TimelineObserver.js: |
| (WI.TimelineObserver.prototype.programmaticCaptureStarted): |
| (WI.TimelineObserver.prototype.programmaticCaptureStopped): |
| It is possible to determine when programmatic capturing starts/stops in the frontend based |
| on the state when the backend causes the state to change, such as if the state is "inactive" |
| when the frontend is told that the backend has started capturing. |
| |
| * UserInterface/Protocol/CPUProfilerObserver.js: |
| (WI.CPUProfilerObserver.prototype.trackingComplete): |
| * UserInterface/Protocol/MemoryObserver.js: |
| (WI.MemoryObserver.prototype.trackingComplete): |
| Send an end timestamp to match other instruments. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DebuggerManager.prototype._timelineCapturingWillStart): Deleted. |
| (WI.DebuggerManager.prototype._timelineCapturingStopped): Deleted. |
| * UserInterface/Models/DefaultDashboard.js: |
| (WI.DefaultDashboard): |
| (WI.DefaultDashboard.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DefaultDashboard.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart): Deleted. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped): Deleted. |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineOverview.prototype._capturingStarted): Deleted. |
| (WI.TimelineOverview.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineRecordingContentView.prototype._recordingUnloaded): |
| (WI.TimelineRecordingContentView.prototype._capturingStarted): Deleted. |
| (WI.TimelineRecordingContentView.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| (WI.TimelineTabContentView.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineTabContentView.prototype._capturingStartedOrStopped): Deleted. |
| Use the new single event for all Timelines capture state changes. |
| Prevent the record button from being clicked when capturing is in a transition state. |
| |
| 2019-04-11 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r244158. |
| |
| Casued 8 inspector/timeline/ test failures. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Timelines: can't reliably stop/start a |
| recording" |
| https://bugs.webkit.org/show_bug.cgi?id=196778 |
| https://trac.webkit.org/changeset/244158 |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: save sheet should be anchored underneath the tab bar when detached |
| https://bugs.webkit.org/show_bug.cgi?id=196722 |
| <rdar://problem/49613280> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: can't reliably stop/start a recording |
| https://bugs.webkit.org/show_bug.cgi?id=196778 |
| <rdar://problem/47606798> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rather than have a binary state of capturing/not-capturing, we should use a four state: |
| 1. inactive (when the backend has stopped capturing) |
| 2. starting (when the frontend requests capturing to start) |
| 3. active (when the backend has started capturing) |
| 4. stopping (when the frontend requests capturing to stop) |
| |
| Capturing is considered "on" when not in an "inactive" state. Prevent the frontend from |
| starting/stopping capturing unless we're in a "stable" ("inactive" or "active") state, not a |
| "transition" ("starting" or "stopping") state. |
| |
| One "side effect" of this change is that since the capturing is considered active until the |
| backend has stopped capturing, we will continue to process records in the frontend even if |
| the frontend has requested to stop capturing. <https://webkit.org/b/152904> |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype.get capturingState): Added. |
| (WI.TimelineManager.prototype.reset): |
| (WI.TimelineManager.prototype.get activeRecording): |
| (WI.TimelineManager.prototype.set autoCaptureOnPageLoad): |
| (WI.TimelineManager.prototype.isCapturing): |
| (WI.TimelineManager.prototype.startCapturing): |
| (WI.TimelineManager.prototype.stopCapturing): |
| (WI.TimelineManager.prototype.processJSON): |
| (WI.TimelineManager.prototype.capturingStarted): |
| (WI.TimelineManager.prototype.capturingStopped): |
| (WI.TimelineManager.prototype.autoCaptureStarted): |
| (WI.TimelineManager.prototype.eventRecorded): |
| (WI.TimelineManager.prototype.pageDOMContentLoadedEventFired): |
| (WI.TimelineManager.prototype.pageLoadEventFired): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype.memoryTrackingUpdated): |
| (WI.TimelineManager.prototype.memoryTrackingCompleted): |
| (WI.TimelineManager.prototype.heapTrackingStarted): |
| (WI.TimelineManager.prototype.heapTrackingCompleted): |
| (WI.TimelineManager.prototype.heapSnapshotAdded): |
| (WI.TimelineManager.prototype._updateCapturingState): Added. |
| (WI.TimelineManager.prototype._processRecord): |
| (WI.TimelineManager.prototype._processEvent): |
| (WI.TimelineManager.prototype._loadNewRecording): |
| (WI.TimelineManager.prototype._addRecord): |
| (WI.TimelineManager.prototype._attemptAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._legacyAttemptStartAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._stopAutoRecordingSoon): |
| (WI.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): |
| (WI.TimelineManager.prototype._mainResourceDidChange): |
| (WI.TimelineManager.prototype._resourceWasAdded): |
| (WI.TimelineManager.prototype._garbageCollected): |
| (WI.TimelineManager.prototype._memoryPressure): |
| (WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged): |
| (WI.TimelineManager.prototype.scriptProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): |
| (WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): |
| (WI.TimelineManager.prototype.unloadRecording): Deleted. |
| (WI.TimelineManager.prototype.programmaticCaptureStarted): Deleted. |
| (WI.TimelineManager.prototype.programmaticCaptureStopped): Deleted. |
| (WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStarted): Deleted. |
| (WI.TimelineManager.prototype.scriptProfilerProgrammaticCaptureStopped): Deleted. |
| |
| * UserInterface/Protocol/ScriptProfilerObserver.js: |
| (WI.ScriptProfilerObserver.prototype.trackingComplete): |
| (WI.ScriptProfilerObserver.prototype.programmaticCaptureStarted): |
| (WI.ScriptProfilerObserver.prototype.programmaticCaptureStopped): |
| * UserInterface/Protocol/TimelineObserver.js: |
| (WI.TimelineObserver.prototype.programmaticCaptureStarted): |
| (WI.TimelineObserver.prototype.programmaticCaptureStopped): |
| It is possible to determine when programmatic capturing starts/stops in the frontend based |
| on the state when the backend causes the state to change, such as if the state is "inactive" |
| when the frontend is told that the backend has started capturing. |
| |
| * UserInterface/Protocol/CPUProfilerObserver.js: |
| (WI.CPUProfilerObserver.prototype.trackingComplete): |
| * UserInterface/Protocol/MemoryObserver.js: |
| (WI.MemoryObserver.prototype.trackingComplete): |
| Send an end timestamp to match other instruments. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DebuggerManager.prototype._timelineCapturingWillStart): Deleted. |
| (WI.DebuggerManager.prototype._timelineCapturingStopped): Deleted. |
| * UserInterface/Models/DefaultDashboard.js: |
| (WI.DefaultDashboard): |
| (WI.DefaultDashboard.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DefaultDashboard.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart): Deleted. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped): Deleted. |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineOverview.prototype._capturingStarted): Deleted. |
| (WI.TimelineOverview.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineRecordingContentView.prototype._recordingUnloaded): |
| (WI.TimelineRecordingContentView.prototype._capturingStarted): Deleted. |
| (WI.TimelineRecordingContentView.prototype._capturingStopped): Deleted. |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| (WI.TimelineTabContentView.prototype._handleTimelineCapturingStateChanged): Added. |
| (WI.TimelineTabContentView.prototype._capturingStartedOrStopped): Deleted. |
| Use the new single event for all Timelines capture state changes. |
| Prevent the record button from being clicked when capturing is in a transition state. |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Audit: result UI shown on first open if an audit was previously selected |
| https://bugs.webkit.org/show_bug.cgi?id=196723 |
| <rdar://problem/49722252> |
| |
| Reviewed by Timothy Hatcher. |
| |
| When opening Web Inspector for the first time, we will trigger resize `layout`s on the main |
| content area as Web Inspector is resized to it's old window size. |
| |
| Rather than treating this layout as a `View.LayoutReason.Resize`, we should treat the |
| first `layout` (e.g. `initialLayout`) as a `View.LayoutReason.Dirty` instead, as there was |
| previously no content. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype._layoutSubtree): |
| (WI.View.prototype._setLayoutReason): |
| |
| * UserInterface/Views/AuditTestContentView.js: |
| (WI.AuditTestContentView): |
| Drive-by: ensure that this class is not instantiated directly. |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: current call frame indicator is indented when there is more than one thread |
| https://bugs.webkit.org/show_bug.cgi?id=196580 |
| <rdar://problem/49582138> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CallFrameTreeElement.css: |
| (.tree-outline .item.call-frame .status): |
| (.tree-outline.single-thread .item.call-frame .status): Added. |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r238602): Elements: deleting the last child of a collapsed parent selects the parent's next sibling |
| https://bugs.webkit.org/show_bug.cgi?id=192711 |
| <rdar://problem/46738990> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Original patch by Matt Baker <mattbaker@apple.com>. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.removeSelectedItems): |
| When looking for a new item to select, start with the item preceding the |
| selection, instead of the item following the selection. This matches |
| pre-multiple selection behavior, as well as Mail and Xcode. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.onexpand): |
| Drive-by fix: when a hidden node is selected, its selection area is drawn |
| with a height of 0px. Update the selection area once the hidden node's |
| parent is expanded. AFAIK, this has always been broken. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.ondelete): |
| After a delete the `SelectionController` may have chosen a child of a |
| collapsed parent as the new selected item. If the item isn't the closing tag (e.g. after |
| deleting the last child), reveal it. |
| |
| (WI.DOMTreeOutline.prototype.selectionControllerPreviousSelectableItem): |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.get previousSelectableSibling): Added. |
| (WI.TreeElement.prototype.get nextSelectableSibling): Added. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableItem): |
| Set `skipUnrevealed` to false, so that children of collapsed parent nodes |
| are considered when looking for an item to selected after a delete. Hidden `TreeElement`s |
| are still ignored as they aren't `selectable`. |
| |
| 2019-04-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements tab: multiple selection lost after navigating to another tab |
| https://bugs.webkit.org/show_bug.cgi?id=192681 |
| <rdar://problem/46709392> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Orginal patch by Matt Baker <mattbaker@apple.com>. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.selectItem): |
| Simplify internal logic by removing an early return. |
| |
| (WI.SelectionController.prototype.selectItems): Added. |
| (WI.SelectionController.prototype.selectAll): |
| Provide a means to select multiple items in a single operation. |
| If `_lastSelectedItem` is not in the items to select, the last |
| item being selected will become the last selected item. |
| |
| (WI.SelectionController.prototype._deselectAllAndSelect): |
| Drive-by fix: correct a logic error. If no items are selected, the item |
| passed as an argument should still become selected. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectTreeElements): Added. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement): |
| (WI.DOMTreeElement.prototype.get closeTagTreeElement): Added. |
| (WI.DOMTreeElement.prototype._updateChildren): |
| Make the close tag `TreeElement` available from the open tag `TreeElement`. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.update): |
| Restore selected `TreeElement`s after updating. |
| |
| * UserInterface/Base/Utilities.js: |
| * UserInterface/Test.html: |
| |
| 2019-04-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements tab: Classes toggle should use accent color on hover |
| https://bugs.webkit.org/show_bug.cgi?id=196266 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle::before): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:matches(.selected, :hover)): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:matches(.selected, :hover)::before): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover::before): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected:active::before): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected): Deleted. |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover): Deleted. |
| |
| 2019-04-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Audit: default audits aren't added when an existing audit is present |
| https://bugs.webkit.org/show_bug.cgi?id=196663 |
| <rdar://problem/49660757> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Rather than have a button that allows the user to re-add the default audits, prevent them |
| from being deletable in the first place. "Deleting" a default audit will instead mark it as |
| disabled (and beep if it is already disabled). |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.loadStoredTests): |
| (WI.AuditManager.prototype.removeTest): |
| (WI.AuditManager.prototype._addDefaultTests): Added. |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): Deleted. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._addTest): |
| (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState): |
| (WI.AuditNavigationSidebarPanel.prototype._updateNoAuditsPlaceholder): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): |
| * UserInterface/Views/AuditNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.audit.has-results > .content > .message-text-view.no-enabled-audits): Added. |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view): Deleted. |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > .message): Deleted. |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > button): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-04-06 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r237196): Web Inspector: Computed panel shouldn't update when it isn't visible |
| https://bugs.webkit.org/show_bug.cgi?id=196667 |
| <rdar://problem/49664912> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Explicitly define `hidden` and `shown` methods instead of relying on SidebarPanel's `visible` getter. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.visibilityDidChange): Deleted. |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.hidden): Added. |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.shown): Added. |
| |
| 2019-04-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: TestSuite test cases should have their own timeout to ensure tests fail with output instead of timeout by test runner |
| https://bugs.webkit.org/show_bug.cgi?id=162814 |
| <rdar://problem/28574102> |
| |
| Reviewed by Brian Burg. |
| |
| A 10s timer is started for every test case added to an async suite. The timer is cleared |
| when the test finishes, but if the timer fires, the test is forcibly ended with an error. |
| |
| This timer can be configured by setting a `timeout` value when adding the test case. Values |
| are expected to be in milliseconds. The value `-1` will prevent a timer from being set. |
| |
| This change also relaxes the expectation that any individual test case failure will stop the |
| rest of the suite from running. Since timers are set per test case, it is possible to |
| recover from a "bad" test case to still run the remaining test cases. |
| |
| NOTE: there may be unexpected behaviour if a test times out, as the timer doesn't actually |
| stop the execution of the test, so it may still run and log information, which may appear |
| "out of nowhere" in the middle of other tests. |
| |
| * UserInterface/Test/TestSuite.js: |
| (TestSuite.prototype.get passCount): |
| (AsyncTestSuite.prototype.runTestCases): |
| (SyncTestSuite.prototype.runTestCases): |
| |
| 2019-04-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Single click on links in non-read-only TextEditors should not follow links |
| https://bugs.webkit.org/show_bug.cgi?id=123364 |
| <rdar://problem/15323913> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/Main.js: |
| (WI._updateModifierKeys): |
| Add classes to the body whenever alt, shift, or ctrl are pressed. |
| |
| * UserInterface/Views/CodeMirrorEditor.js: |
| (WI.CodeMirrorEditor.create): |
| Add a `read-only` class if the `CodeMirror` is readonly. |
| |
| * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: |
| (.cm-s-default .cm-link,): |
| (.read-only.cm-s-default .cm-link:hover,): |
| (.cm-s-default .cm-link:hover,): Deleted. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.set readOnly): |
| (WI.TextEditor.prototype._openClickedLinks): |
| |
| 2019-04-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove support for -apple-trailing-word |
| https://bugs.webkit.org/show_bug.cgi?id=196525 |
| |
| Reviewed by Zalan Bujtas. |
| |
| This CSS property is nonstandard and not used. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2019-04-03 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: this._computedStyleSection.focus is not a function. (In 'this._computedStyleSection.focus()', 'this._computedStyleSection.focus' is undefined) |
| https://bugs.webkit.org/show_bug.cgi?id=192108 |
| <rdar://problem/46685392> |
| |
| Reviewed by Devin Rousso. |
| |
| This patch fixes the uncaught exception. Tabbing to and from "Properties" section continues |
| working the same way as before the patch. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection): Deleted. |
| (WI.ComputedStyleDetailsPanel.prototype.focusLastSection): Deleted. |
| |
| 2019-04-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: DOM breakpoint icon should stroke when hovering selection area |
| https://bugs.webkit.org/show_bug.cgi?id=196516 |
| <rdar://problem/49540494> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/DOMTreeContentView.css: |
| (body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint,): Added. |
| (body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, .hovered) .status-image.breakpoint.subtree): Added. |
| (body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, :hover) .status-image.breakpoint): Deleted. |
| (body:not(.window-inactive) .content-view.dom-tree .tree-outline.dom:focus li:matches(.selected, :hover) .status-image.breakpoint.subtree): Deleted. |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: modernize serialization of breakpoints and the maps that hold them |
| https://bugs.webkit.org/show_bug.cgi?id=196230 |
| <rdar://problem/49236485> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.breakpointsForSourceCode): |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype.removeBreakpoint): |
| (WI.DebuggerManager.prototype._setBreakpoint): |
| (WI.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint): |
| |
| * UserInterface/Models/Breakpoint.js: |
| (WI.Breakpoint): |
| (WI.Breakpoint.fromJSON): Added. |
| (WI.Breakpoint.prototype.toJSON): |
| (WI.Breakpoint.prototype.set resolved): |
| (WI.Breakpoint.prototype.recreateAction): |
| (WI.Breakpoint.prototype.saveIdentityToCookie): |
| (WI.Breakpoint.prototype._isSpecial): Added. |
| (WI.Breakpoint.set resolved.isSpecialBreakpoint): Deleted. |
| (WI.Breakpoint.serializeOptions): Deleted. |
| |
| * UserInterface/Models/BreakpointAction.js: |
| (WI.BreakpointAction): |
| (WI.BreakpointAction.fromJSON): Added. |
| (WI.BreakpointAction.prototype.toProtocol): Added. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addBreakpointsForSourceCode): |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._prepareEditorForInitialContent): |
| (WI.SourceCodeTextEditor.prototype._breakpointsEnabledDidChange): |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOMDebugger: disabling a breakpoint for a specific event listener removes it from the UI |
| https://bugs.webkit.org/show_bug.cgi?id=196453 |
| <rdar://problem/49489318> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Allow breakpoints for specific event listeners to be disabled, rather than immeditately |
| removing/deleting them when they are about to become disabled. This preserves the existing |
| functionality, but now allows for the tree element to stay in the UI in a disabled state. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager): |
| (WI.DOMManager.prototype.setBreakpointForEventListener): |
| (WI.DOMManager.prototype.removeBreakpointForEventListener): |
| (WI.DOMManager.prototype.removeEventListenerBreakpointsForNode): Added. |
| (WI.DOMManager.prototype._updateEventBreakpoint): Added. |
| (WI.DOMManager.prototype._handleEventBreakpointDisabledStateChanged): Added. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement.prototype.populateContextMenu): |
| (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint): |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNodeBreakpoints): |
| |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement.prototype.ondelete): |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: auto-record after page load sometimes shows the wrong UI |
| https://bugs.webkit.org/show_bug.cgi?id=196320 |
| <rdar://problem/49356686> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| It was previously possible that the timing of a recording being started and the preview |
| image being loaded would not always be in the same order. |
| |
| Utilize the existing `View.prototype.layout` mechanics to ensure that updates are coalesced |
| and that the changes are always applied in a particular order. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.refreshPreview): Added. |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype.layout): |
| (WI.CanvasContentView.prototype.shown): |
| (WI.CanvasContentView.prototype.attached): |
| (WI.CanvasContentView.prototype._refreshPixelSize): |
| (WI.CanvasContentView.prototype.refresh): Deleted. |
| (WI.CanvasContentView.prototype._recordingStarted): Deleted. |
| (WI.CanvasContentView.prototype._recordingProgress): Deleted. |
| (WI.CanvasContentView.prototype._recordingStopped): Deleted. |
| (WI.CanvasContentView.prototype._shaderProgramAdded): Deleted. |
| (WI.CanvasContentView.prototype._shaderProgramRemoved): Deleted. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._refreshPreviews): |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: add compatibility support for WebMetal |
| https://bugs.webkit.org/show_bug.cgi?id=196412 |
| <rdar://problem/49439417> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.fromPayload): |
| (WI.Canvas.displayNameForContextType): |
| * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-12.2.json: |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: "Copy as HTML" appears twice when showing a context menu for a logged node |
| https://bugs.webkit.org/show_bug.cgi?id=196271 |
| <rdar://problem/49290676> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ObjectTreeBaseTreeElement.js: |
| (WI.ObjectTreeBaseTreeElement.prototype._appendMenusItemsForObject): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-04-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: breakpoints don't populate in inspector2 on first load |
| https://bugs.webkit.org/show_bug.cgi?id=196063 |
| <rdar://problem/49097787> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| In the case that a breakpoint becomes resolved after the resource has finished loaded, there |
| won't be an already existing `TreeElement` for the breakpoint to replace. |
| |
| This can realistically only happen if the IndexedDB lookup is super slow, or the resource is |
| extremely fast (e.g. a `data` url). |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange): |
| (WI.DebuggerSidebarPanel.prototype._addDebuggerObject): Deleted. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpointsForSourceCode): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange): |
| |
| 2019-04-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Adjust Energy Impact Threshholds |
| https://bugs.webkit.org/show_bug.cgi?id=196421 |
| <rdar://problem/49125703> |
| |
| Reviewed by Devin Rousso. |
| |
| - Low - Keep Below 3% to continue to encourage idle pages stay below 3% |
| Might want to reduce to 2.5 or 2 after fixing bug 196419. |
| |
| - High - Make Above 30% instead of 50% to encourage long running interactivity to stay below 30% |
| Depends on interaction, but sustained (1-2min) at 30%+ will certainly impact battery. |
| |
| - Very High - Make above 100% instead of 150% |
| CPU Usage spikes around page load and is quite often still under 100% despite many threads. |
| Drop this a bit as we dropped High down. |
| |
| Reduce the size of the Medium section, and increase the High section |
| Having 70% of the chart be "Medium" is just too much Medium, and |
| we've now made it more possible to be in the High range. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.get mediumEnergyThreshold): |
| (WI.CPUTimelineView.prototype.get highEnergyThreshold): |
| (WI.CPUTimelineView.prototype.get lowEnergyGraphBoundary): |
| (WI.CPUTimelineView.prototype.get mediumEnergyGraphBoundary): |
| (WI.CPUTimelineView.prototype.get highEnergyGraphBoundary): |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype.layout.bestThreadLayoutMax): |
| (WI.CPUTimelineView.prototype._layoutEnergyChart): |
| |
| 2019-03-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Delete WebMetal implementation in favor of WebGPU |
| https://bugs.webkit.org/show_bug.cgi?id=195418 |
| |
| Reviewed by Dean Jackson. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.fromPayload): |
| (WI.Canvas.displayNameForContextType): |
| * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-12.2.json: |
| |
| 2019-03-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Storage: some cookie column headers are not localized |
| https://bugs.webkit.org/show_bug.cgi?id=196406 |
| <rdar://problem/48467422> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype.initialLayout): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Show Resource Initiator in Network Tab detail views |
| https://bugs.webkit.org/show_bug.cgi?id=196316 |
| <rdar://problem/49352679> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.resourceRequestWillBeSent): |
| (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache): |
| (WI.NetworkManager.prototype._initiatorCallFramesFromPayload): |
| Initialize call frames from the initiator payload. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get initiatorCallFrames): |
| Initialization and accessor. |
| |
| * UserInterface/Views/CallFrameTreeElement.js: |
| (WI.CallFrameTreeElement): |
| Selecting a native element won't do anything so just don't allow selection. |
| |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (.resource-headers .go-to-link): |
| (.resource-headers .call-stack): |
| (.resource-headers .call-stack:hover): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView): |
| (WI.ResourceHeadersContentView.prototype.hidden): |
| (WI.ResourceHeadersContentView.prototype._refreshSummarySection): |
| Add an "Initiator" line in the summary with a way to view the whole |
| initiator backtrace if one exists. |
| |
| 2019-03-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: fix typo in CSS selector to always show add breakpoint button |
| https://bugs.webkit.org/show_bug.cgi?id=196241 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoints).collapsed > .header > .options,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoins).collapsed > .header > .options,): Deleted. |
| |
| 2019-03-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Page Weight indicator clears on pages with zero length resources (macrumors.com) |
| https://bugs.webkit.org/show_bug.cgi?id=196170 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/DefaultDashboard.js: |
| (WI.DefaultDashboard.prototype._resourceSizeDidChange): |
| Catch NaN earlier. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.updateWithMetrics): |
| When we receive exact metrics transition the estimated size to zero, |
| since we won't receive any more updates for the resource. |
| |
| 2019-03-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: WebGL action icon shouldn't invert when selected |
| https://bugs.webkit.org/show_bug.cgi?id=196135 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._classNameForAction): |
| (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName): Deleted. |
| Remove unnecessary logging and memoization. |
| |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added. |
| (@media (prefers-color-scheme: dark)): |
| (.item.recording-action:not(.invalid, .initial-state, .has-context-replacer, .name-unknown) > .icon): Added. |
| (.tree-outline:focus .item.recording-action.selected:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted. |
| (.item.recording-action.has-context-replacer > .icon): Deleted. |
| (.item.recording-action:not(.invalid, .initial-state, .has-context-replacer) > .icon): Deleted. |
| Simplify styles between light and dark mode. |
| |
| 2019-03-24 Simon Welsh <simon@welsh-au.com> |
| |
| Web Inspector: testCellRoleForRequiredChidren accessibility audit checks for rows in cells |
| https://bugs.webkit.org/show_bug.cgi?id=195988 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The audit now checks that rows contain cells, allowing any of the four |
| cell-based roles. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): |
| (WI.AuditManager): |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded.const.testCellRoleForRequiredChidren): Deleted. |
| |
| 2019-03-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: missing icons for WebGL2 contexts |
| https://bugs.webkit.org/show_bug.cgi?id=196136 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled > .glyph): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.canvas-2d, .bitmaprenderer) .icon): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas:matches(.webgl, .webgl2, .webgpu, .webmetal) .icon): Added. |
| (@media (prefers-color-scheme: dark)): |
| (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Deleted. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon): Deleted. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.casnvas.webgl .icon): Deleted. |
| Use the 2D icon for BitmapRenderer and the 3D icon for WebGL2, WebMetals, and WebGPU. |
| Drive-by: the start/stop button text was too dark when disabled in dark mode. |
| |
| * UserInterface/Models/Canvas.js: |
| Drive-by: "gpu" => "webgpu", to match the protocol string. |
| |
| 2019-03-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: "Reveal in Resources Tab" still shown when Sources tab is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=196134 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement.prototype.populateContextMenu): |
| Drive-by: find the first call frame that has a source code location, rather than naively |
| always using the top call frame. |
| |
| * UserInterface/Views/SearchResultTreeElement.js: |
| (WI.SearchResultTreeElement.prototype.populateContextMenu): |
| |
| 2019-03-22 Keith Rollin <krollin@apple.com> |
| |
| Enable ThinLTO support in Production builds |
| https://bugs.webkit.org/show_bug.cgi?id=190758 |
| <rdar://problem/45413233> |
| |
| Reviewed by Daniel Bates. |
| |
| Enable building with Thin LTO in Production when using Xcode 10.2 or |
| later. This change results in a 1.45% progression in PLT5. Full |
| Production build times increase about 2-3%. Incremental build times |
| are more severely affected, and so LTO is not enabled for local |
| engineering builds. |
| |
| LTO is enabled only on macOS for now, until rdar://problem/49013399, |
| which affects ARM builds, is fixed. |
| |
| To change the LTO setting when building locally: |
| |
| - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the |
| command line. |
| - If building with `build-webkit`, specify --lto-mode={none,thin,full} |
| on the command line. |
| - If building with `build-root`, specify --lto={none,thin,full} on the |
| command line. |
| - If building with Xcode, create a LocalOverrides.xcconfig file at the |
| top level of your repository directory (if needed) and define |
| WK_LTO_MODE to full, thin, or none. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2019-03-21 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timelines - Cannot export on about:blank - suggested filename containing a colon silently fails |
| https://bugs.webkit.org/show_bug.cgi?id=196109 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Base/FileUtilities.js: |
| (WI.FileUtilities.sanitizeFilename): |
| (WI.FileUtilities.inspectorURLForFilename): |
| New utility functions. |
| |
| * UserInterface/Test.html: |
| Include FileUtilities. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.export): |
| * UserInterface/Debug/ProtocolTrace.js: |
| (WI.ProtocolTrace.prototype.get saveData): |
| (WI.ProtocolTrace): |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._handleContextMenu): |
| (WI.ConsoleMessageView): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| * UserInterface/Views/HeapSnapshotContentView.js: |
| (WI.HeapSnapshotContentView.prototype._exportSnapshot): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype.get saveData): |
| (WI.LogContentView.prototype._handleContextMenuEvent): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._exportHAR): |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._exportRecording): |
| (WI.RecordingContentView.prototype._exportReduction): |
| * UserInterface/Views/ScriptContentView.js: |
| (WI.ScriptContentView.prototype.get saveData): |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView.prototype.get saveData): |
| * UserInterface/Views/TextContentView.js: |
| (WI.TextContentView.prototype.get saveData): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView.prototype.get saveData): |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype._exportTimelineRecording): |
| Update "web-inspector:///" URL building code to use the utility. |
| |
| 2019-03-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Use CSS variables for text color in Computed panel |
| https://bugs.webkit.org/show_bug.cgi?id=196117 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ComputedStyleSection.css: |
| (.computed-style-section): |
| (.computed-style-section .computed-property-item .property-trace-item .selector): |
| (.computed-style-section .computed-property-item .go-to-link): |
| |
| 2019-03-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: flatten the overview to show all records, one per line |
| https://bugs.webkit.org/show_bug.cgi?id=191901 |
| <rdar://problem/46423618> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/OverviewTimelineView.js: |
| (WI.OverviewTimelineView): |
| (WI.OverviewTimelineView.prototype.closed): |
| (WI.OverviewTimelineView.prototype.get navigationItems): Added. |
| (WI.OverviewTimelineView.prototype.reset): |
| (WI.OverviewTimelineView.prototype.layout): |
| (WI.OverviewTimelineView.prototype.get _relevantTimelines): Added. |
| (WI.OverviewTimelineView.prototype.get _shouldGroupBySourceCode): Added. |
| (WI.OverviewTimelineView.prototype._loadExistingRecords): Added. |
| (WI.OverviewTimelineView.prototype._insertDataGridNode): |
| (WI.OverviewTimelineView.prototype._addResourceToDataGridIfNeeded): |
| (WI.OverviewTimelineView.prototype._addSourceCodeTimeline): |
| (WI.OverviewTimelineView.prototype._processPendingRepresentedObjects): |
| (WI.OverviewTimelineView.prototype._handleGroupBySourceCodeSettingChanged): Added. |
| (WI.OverviewTimelineView.prototype._handleGroupBySourceCodeNavigationItemCheckedDidChange): Added. |
| (WI.OverviewTimelineView.prototype._handleTimelineRecordAdded): Added. |
| (WI.OverviewTimelineView.prototype._sourceCodeTimelineAdded): |
| (WI.OverviewTimelineView.prototype._networkTimelineRecordAdded): Deleted. |
| Listen for new records on all timelines. Add each record as a new line. Since each timeline |
| has different data to display, only show the "name" and "graph" for all records. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._currentContentViewDidChange): |
| (WI.TimelineRecordingContentView.prototype._updateImportedView): Deleted. |
| When viewing the overview of an imported recording, show the non-grouped overview. |
| |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording.prototype.addRecord): |
| (WI.TimelineRecording.prototype._keyForRecord): |
| Drive-by: show Media timeline events under the owner frame's resource when grouped. |
| |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment, .timeline-record-bar.timeline-record-type-heap-allocations > .segment): Added. |
| (.timeline-record-bar.timeline-record-type-script.garbage-collected > .segment): Deleted. |
| |
| * UserInterface/Base/Setting.js: |
| Add setting for controlling the Timeline overview grouping. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/SourceCodeTimelineTreeElement.js: Removed. |
| * UserInterface/Views/TimelineRecordingImportedView.js: Removed. |
| * UserInterface/Views/TimelineRecordingImportedView.css: Removed. |
| Remove unused files. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: the name of the file should not be used as a folder |
| https://bugs.webkit.org/show_bug.cgi?id=196064 |
| <rdar://problem/49097710> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath): |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel.prototype._addResource): |
| Drive-by: sort resources in each folder by name when grouping by path. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: rework how Canvas.enable/Canvas.disable is used so that events are not sent when the Canvas tab isn't enabled |
| https://bugs.webkit.org/show_bug.cgi?id=195828 |
| <rdar://problem/48941756> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager): |
| (WI.CanvasManager.prototype.initializeTarget): |
| (WI.CanvasManager.prototype.enable): Added. |
| (WI.CanvasManager.prototype.disable): Added. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype.closed): Added. |
| |
| * UserInterface/Base/Test.js: |
| (WI.contentLoaded): |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: collapsing a section doesn't shrink the space used by that section |
| https://bugs.webkit.org/show_bug.cgi?id=196045 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .details-section): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.paused-reason, .breakpoins).collapsed > .header > .options,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.pause-reason, .call-stack, .breakpoints) > .content,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints) > .content): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.call-stack): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .create-breakpoint): |
| (.sidebar > .panel.navigation.sources > .content > .pause-reason): |
| (.sidebar > .panel.navigation.sources > .content > .details-section:matches(.call-stack, .breakpoints):not(.collapsed) > .content,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints .tree-outline .item.event-target-window .icon): |
| (.sidebar > .panel.navigation.sources > .content .details-section): Deleted. |
| (.sidebar > .panel.navigation.sources > .content .details-section:matches(.paused-reason, .breakpoins).collapsed > .header > .options,): Deleted. |
| (.sidebar > .panel.navigation.sources > .content .details-section.collapsed > .content): Deleted. |
| (.sidebar > .panel.navigation.sources > .content .details-section.breakpoints > .header > .options .create-breakpoint): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .call-stack-container): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container .create-breakpoint): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .resources-container): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .pause-reason-container): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container)): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints .tree-outline .item.event-target-window .icon): Deleted. |
| - Apply the overflow scrolling to the content element of each `WI.DetailsSection`. |
| - Ensure that there is a maximum height for each section. |
| - When `.collapsed`, don't try to grow/shrink the section based on its contents. |
| |
| * UserInterface/Views/CallFrameTreeElement.css: |
| (.tree-outline .item.call-frame): |
| (.tree-outline .item.call-frame .status): |
| Make the container of the active call frame status indicator relatively positioned so that |
| the active call frame status indicator will follow the container when scrolling. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timeline should show when events preventDefault() was called on an event or not |
| https://bugs.webkit.org/show_bug.cgi?id=176824 |
| <rdar://problem/34290931> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Original patch by Joseph Pecoraro <pecoraro@apple.com>. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New string. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._processRecord): |
| Include the whole data object as extra details. |
| |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord): |
| (WI.ScriptTimelineRecord.prototype.get eventType): |
| Wholesale copy of the extra data instead of just a single property. |
| |
| * UserInterface/Views/ScriptDetailsTimelineView.js: |
| (WI.ScriptDetailsTimelineView): |
| Give the name column more initial space, there is still extra space |
| after this adjustment but name is comfortably larger (and the most |
| likely to be expanded). |
| |
| * UserInterface/Views/ScriptTimelineDataGridNode.js: |
| (WI.ScriptTimelineDataGridNode.prototype.get subtitle): |
| Include "default prevented" as the event's subtitle if it was prevented. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles Redesign: Editing selector should not hide the rule |
| https://bugs.webkit.org/show_bug.cgi?id=178489 |
| <rdar://problem/35062434> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Extracts the selector payload parsing logic inside `WI.DOMNodeStyles` into static functions |
| so that when the user changes the selector of a `WI.CSSRule`, it's able to process and |
| update itself with the new selector. This is mainly useful in the case where the `WI.CSSRule` |
| no longer applies to the selected node (meaning it won't be part of that node's |
| `WI.DOMNodeStyles`) in that it allows the `WI.SpreadsheetCSSStyleDeclarationSection` to |
| display the new selector text and the owner `WI.SpreadsheetRulesStyleDetailsPanel` to keep |
| that section visible even though it isn't applicable to the current node anymore. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles): |
| (WI.DOMNodeStyles.parseSelectorListPayload): Added. |
| (WI.DOMNodeStyles.createSourceCodeLocation): Added. |
| (WI.DOMNodeStyles.prototype.refresh): |
| (WI.DOMNodeStyles.prototype.refresh.fetchedMatchedStyles): |
| (WI.DOMNodeStyles.prototype.refresh.fetchedInlineStyles): |
| (WI.DOMNodeStyles.prototype.refresh.fetchedComputedStyle): |
| (WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload): |
| (WI.DOMNodeStyles.prototype._parseRulePayload): |
| (WI.DOMNodeStyles.prototype._styleSheetContentDidChange): |
| (WI.DOMNodeStyles.prototype.refresh.parseRuleMatchArrayPayload): Deleted. |
| (WI.DOMNodeStyles.prototype._createSourceCodeLocation): Deleted. |
| (WI.DOMNodeStyles.prototype._parseSelectorListPayload): Deleted. |
| Keep track of all `WI.CSSRule` and `WI.CSSStyleDeclaration` that have ever been associated |
| with this object, so that if a rule's selector is changed to no longer match, and then is |
| changed back to match again, we are able to update that rule instead of creating a new one. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionSelectorWillChange): Added. |
| Attempt to preserve the position of any sections that are changed and no longer apply to the |
| current node. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._renderSelector): |
| Drive-by: remove unused CSS classes. |
| |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule.prototype.update): |
| (WI.CSSRule.prototype._selectorResolved): |
| Drive-by: remove unused event. |
| |
| * UserInterface/Base/Multimap.js: |
| (Multimap.prototype.has): Added. |
| (Multimap.prototype.sets): Added. |
| (Multimap.prototype.copy): Added. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: no way to filter out all console messages or all evaluations/results |
| https://bugs.webkit.org/show_bug.cgi?id=167035 |
| <rdar://problem/30023523> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| (WI.LogContentView.prototype.didAppendConsoleMessageView): |
| (WI.LogContentView.prototype._markScopeBarItemUnread): |
| (WI.LogContentView.prototype._markScopeBarItemForMessageLevelUnread): Added. |
| (WI.LogContentView.prototype._previousMessageRepeatCountUpdated): |
| (WI.LogContentView.prototype._messageSourceBarSelectionDidChange): |
| (WI.LogContentView.prototype._scopeBarSelectionDidChange): |
| (WI.LogContentView.prototype._filterMessageElements): |
| (WI.LogContentView.prototype.performSearch): |
| * UserInterface/Views/LogContentView.css: |
| (.log-scope-bar > li.unread.evaluations::before): Added. |
| |
| * UserInterface/Views/ConsoleCommandView.js: |
| (WI.ConsoleCommandView): |
| Drive-by: remove unnecessary super-class extends. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: enabledProperties don't get invalidated after removing property |
| https://bugs.webkit.org/show_bug.cgi?id=196038 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter): |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: include window as part of any event listener chain |
| https://bugs.webkit.org/show_bug.cgi?id=195730 |
| <rdar://problem/48916872> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Allow non-nodes (e.g. `window`) to be listed as the target of an event listener. |
| Add support for the same concept when showing breakpoint details after pausing on a specific |
| event listener in the Debugger/Sources navigation sidebar. |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByEvent): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByTarget): Added. |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.eventListenersCallback): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode): Deleted. |
| |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| (WI.EventListenerSectionGroup.prototype._targetTextOrLink): Added. |
| (WI.EventListenerSectionGroup.prototype._nodeTextOrLink): Deleted. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._breakpointTreeOutlineDeleteTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (.sidebar > .panel.navigation.debugger > .content > .breakpoints .tree-outline .item.event-target-window .icon): Added. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints .tree-outline .item.event-target-window .icon): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: virtualize the list of variables in the Scope sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=192648 |
| <rdar://problem/46800949> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WI.ScopeChainDetailsSidebarPanel.prototype._generateCallFramesSection): |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.set hidden): |
| (WI.TreeElement.prototype._attach): |
| (WI.TreeElement.prototype._detach): |
| (WI.TreeElement.prototype.collapse): |
| (WI.TreeElement.prototype.expand): |
| Move `updateVirtualizedElements` calls to the owner `WI.TreeOutline` to ensure that they get |
| called. Make the remaining calls use rAF debouncing to better coalesce updates. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._rememberTreeElement): |
| (WI.TreeOutline.prototype._forgetTreeElement): |
| (WI.TreeOutline.prototype.registerScrollVirtualizer): |
| (WI.TreeOutline.prototype._updateVirtualizedElements.calculateOffsetFromContainer): Added. |
| (WI.TreeOutline.prototype._updateVirtualizedElements): |
| (WI.TreeOutline.prototype._calculateVirtualizedValues): Deleted. |
| Calculate the `WI.TreeOutline`'s top offset within the scroll container so that it will only |
| update when it's within the visual area. |
| |
| * UserInterface/Views/Utilities.js: |
| (Array.prototype.remove): |
| Return whether the item was actually removed from the array. |
| |
| 2019-03-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timelines - Export fails for MediaTimelineRecords with originator DOM Node - Cannot serialize cyclic structure |
| https://bugs.webkit.org/show_bug.cgi?id=196027 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Models/MediaTimelineRecord.js: |
| (WI.MediaTimelineRecord.prototype.toJSON): |
| Remove the originator since that is a WI.DOMNode and cannot |
| be JSON serialized. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: move breakpoint storage to use `WI.ObjectStore` |
| https://bugs.webkit.org/show_bug.cgi?id=192719 |
| <rdar://problem/46746857> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype.removeBreakpoint): |
| (WI.DebuggerManager.prototype._debuggerBreakpointOptions): |
| (WI.DebuggerManager.prototype._setBreakpoint.didSetBreakpoint): |
| (WI.DebuggerManager.prototype._setBreakpoint): |
| (WI.DebuggerManager.prototype._breakpointDisabledStateDidChange): |
| (WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange): |
| (WI.DebuggerManager.prototype._saveBreakpoints): Deleted. |
| |
| * UserInterface/Models/Breakpoint.js: |
| (WI.Breakpoint.prototype.saveIdentityToCookie): |
| (WI.Breakpoint.prototype.serializeOptions): Added. |
| (WI.Breakpoint.prototype.toJSON): Added. |
| (WI.Breakpoint.prototype.get options): Deleted. |
| (WI.Breakpoint.prototype.get info): Deleted. |
| (WI.Breakpoint.prototype._serializableActions): Deleted. |
| * UserInterface/Models/BreakpointAction.js: |
| (WI.BreakpointAction.prototype.toJSON): Added. |
| (WI.BreakpointAction.prototype.get info): Deleted. |
| |
| * UserInterface/Base/ObjectStore.js: |
| (WI.ObjectStore.async reset): Added. |
| (WI.ObjectStore._open): |
| (WI.ObjectStore.prototype.get keyPath): Added. |
| (WI.ObjectStore.prototype.async.getAll): |
| (WI.ObjectStore.prototype.async.put): Added. |
| (WI.ObjectStore.prototype.async.putObject): Added. |
| (WI.ObjectStore.prototype.async.add): Deleted. |
| (WI.ObjectStore.prototype.async.addObject): Deleted. |
| Replace `add` with `put` so that if a key already exists, it is overridden. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.set editing): |
| (WI.AuditManager.prototype.async processJSON): |
| |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| (WI.BreakpointPopoverController.prototype._popoverActionsAddActionButtonClicked): |
| Inline some `WI.Breakpoint` static values. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: disabled breakpoints banner should be sticky |
| https://bugs.webkit.org/show_bug.cgi?id=195104 |
| <rdar://problem/48442259> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Allow each of the individual sections to be scrolled separately from the entire sidebar. |
| |
| Leverage CSS variables set via JavaScript to be able to calculate the maximum height of each |
| `WI.TreeOutline` section based on the number of items. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCallStackElementAddedOrRemoved): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content): |
| (.sidebar > .panel.navigation.sources > .content .details-section): Added. |
| (.sidebar > .panel.navigation.sources > .content .details-section.paused-reason.collapsed > .header > .options,): Added. |
| (.sidebar > .panel.navigation.sources > .content .details-section.collapsed > .content): Added. |
| (.sidebar > .panel.navigation.sources > .content > :matches(.pause-reason-container, .call-stack-container, .breakpoints-container)): Added. |
| (.sidebar > .panel.navigation.sources > .content > .call-stack-container): Added. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container): Added. |
| (.sidebar > .panel.navigation.sources > .content > .breakpoints-container .create-breakpoint): Added. |
| (.sidebar > .panel.navigation.sources > .content > .resources-container): Added. |
| (.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread): Added. |
| (.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread > .item.thread): Added. |
| (@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content): Added. |
| (@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content > .pause-reason-container): Added. |
| (@media (min-height: 600px) .sidebar > .panel.navigation.sources > .content > :matches(.call-stack-container, .breakpoints-container, .resources-container)): Added. |
| (.sidebar > .panel.navigation.sources > .content > .details-section): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .resources): Deleted. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| "Reveal in Layers Tab" context menu option should not be available if the Layers Tab has not been enabled |
| https://bugs.webkit.org/show_bug.cgi?id=196009 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: add a setting for controlling auto-expansion of Trace messages |
| https://bugs.webkit.org/show_bug.cgi?id=195690 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendStackTrace): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: selecting a node in a different frame should automatically switch the console prompt's execution context |
| https://bugs.webkit.org/show_bug.cgi?id=195805 |
| <rdar://problem/48930866> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add an "Auto" execution context item that is selected by default and will update the |
| selected execution context whenever the inspected node changes. It will also display the |
| preferred name for whatever execution context is currently active. |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole): |
| (WI.QuickConsole.prototype.initializeMainExecutionContextPathComponent): |
| (WI.QuickConsole.prototype._preferredNameForFrame): Added. |
| (WI.QuickConsole.prototype._selectExecutionContext): Added. |
| (WI.QuickConsole.prototype._executionContextPathComponentsToDisplay): |
| (WI.QuickConsole.prototype._rebuildExecutionContextPathComponents): |
| (WI.QuickConsole.prototype._framePageExecutionContextsChanged): |
| (WI.QuickConsole.prototype._frameExecutionContextsCleared): |
| (WI.QuickConsole.prototype._activeExecutionContextChanged): |
| (WI.QuickConsole.prototype._createExecutionContextPathComponent): |
| (WI.QuickConsole.prototype._insertOtherExecutionContextPathComponent): |
| (WI.QuickConsole.prototype._removeOtherExecutionContextPathComponent): |
| (WI.QuickConsole.prototype._insertExecutionContextPathComponentForFrame): |
| (WI.QuickConsole.prototype._removeExecutionContextPathComponentForFrame): |
| (WI.QuickConsole.prototype._targetRemoved): |
| (WI.QuickConsole.prototype._pathComponentSelected): |
| (WI.QuickConsole.prototype._handleInspectedNodeChanged): Added. |
| (WI.QuickConsole.prototype.get selectedExecutionContext): Deleted. |
| (WI.QuickConsole.prototype.set selectedExecutionContext): Deleted. |
| (WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame): Deleted. |
| * UserInterface/Views/QuickConsole.css: |
| (.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context)): Added. |
| (.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context) .execution-context): Added. |
| (.quick-console > .navigation-bar > .hierarchical-path:not(.automatic-execution-context) .execution-context .selector-arrows): Added. |
| (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context): Deleted. |
| (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows): Deleted. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.get inspectedNode): Added. |
| (WI.DOMManager.prototype.setInspectedNode): |
| Broadcast when the inspected node changes. |
| |
| * UserInterface/Views/NavigationBar.js: |
| (WI.NavigationBar.prototype.layout): |
| When `sizesToFit` is enabled, don't force any items to be hidden. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: refactor WI.TimelineDataGridNode and its subclasses to unify the API surface |
| https://bugs.webkit.org/show_bug.cgi?id=195959 |
| <rdar://problem/49028896> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/TimelineDataGridNode.js: |
| (WI.TimelineDataGridNode.prototype.get records): |
| (WI.TimelineDataGridNode.prototype.get data): |
| (WI.TimelineDataGridNode.prototype.refresh): |
| |
| * UserInterface/Views/HeapAllocationsTimelineDataGridNode.js: |
| (WI.HeapAllocationsTimelineDataGridNode): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.get heapSnapshot): Added. |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.get data): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.createCellContent): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.createCells): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype._handleHeapSnapshotCollectedNodes): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype._handleHeapSnapshotInvalidated): |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.get record): Deleted. |
| (WI.HeapAllocationsTimelineDataGridNode.prototype.updateTimestamp): Deleted. |
| (WI.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotCollectedNodes): Deleted. |
| (WI.HeapAllocationsTimelineDataGridNode.prototype._heapSnapshotInvalidated): Deleted. |
| |
| * UserInterface/Views/LayoutTimelineDataGridNode.js: |
| (WI.LayoutTimelineDataGridNode): |
| (WI.LayoutTimelineDataGridNode.prototype.get data): |
| (WI.LayoutTimelineDataGridNode.prototype.createCellContent): |
| (WI.LayoutTimelineDataGridNode.prototype.get records): Deleted. |
| |
| * UserInterface/Views/MediaTimelineDataGridNode.js: |
| (WI.MediaTimelineDataGridNode): |
| (WI.MediaTimelineDataGridNode.prototype.get records): Deleted. |
| |
| * UserInterface/Views/ProfileNodeDataGridNode.js: |
| (WI.ProfileNodeDataGridNode): |
| (WI.ProfileNodeDataGridNode.prototype.get profileNode): |
| (WI.ProfileNodeDataGridNode.prototype.get data): |
| (WI.ProfileNodeDataGridNode.prototype.createCellContent): |
| (WI.ProfileNodeDataGridNode.prototype._populate): |
| (WI.ProfileNodeDataGridNode.prototype.get records): Deleted. |
| (WI.ProfileNodeDataGridNode.prototype.get baseStartTime): Deleted. |
| (WI.ProfileNodeDataGridNode.prototype.get rangeStartTime): Deleted. |
| (WI.ProfileNodeDataGridNode.prototype.get rangeEndTime): Deleted. |
| (WI.ProfileNodeDataGridNode.prototype.updateRangeTimes): Deleted. |
| (WI.ProfileNodeDataGridNode.prototype.refresh): Deleted. |
| |
| * UserInterface/Views/RenderingFrameTimelineDataGridNode.js: |
| (WI.RenderingFrameTimelineDataGridNode): |
| (WI.RenderingFrameTimelineDataGridNode.prototype.get data): |
| (WI.RenderingFrameTimelineDataGridNode.prototype.createCellContent): |
| (WI.RenderingFrameTimelineDataGridNode.prototype.get records): Deleted. |
| |
| * UserInterface/Views/ResourceTimelineDataGridNode.js: |
| (WI.ResourceTimelineDataGridNode): |
| (WI.ResourceTimelineDataGridNode.prototype.get resource): |
| (WI.ResourceTimelineDataGridNode.prototype.get data): |
| (WI.ResourceTimelineDataGridNode.prototype.createCellContent): |
| (WI.ResourceTimelineDataGridNode.prototype.appendContextMenuItems): |
| (WI.ResourceTimelineDataGridNode.prototype.filterableDataForColumn): |
| (WI.ResourceTimelineDataGridNode.prototype._createNameCellDocumentFragment): |
| (WI.ResourceTimelineDataGridNode.prototype._cachedCellContent): |
| (WI.ResourceTimelineDataGridNode.prototype._timelineRecordUpdated): |
| (WI.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked): |
| (WI.ResourceTimelineDataGridNode.prototype._updateStatus): |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get startTime): |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get currentTime): |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get endTime): |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar.else.let.graphDataSource.get _extraTimePadding): |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar): |
| (WI.ResourceTimelineDataGridNode.prototype.get records): Deleted. |
| |
| * UserInterface/Views/ResourceTimingPopoverDataGridNode.js: |
| (WI.ResourceTimingPopoverDataGridNode): |
| (WI.ResourceTimingPopoverDataGridNode.prototype.get records): Deleted. |
| |
| * UserInterface/Views/ScriptTimelineDataGridNode.js: |
| (WI.ScriptTimelineDataGridNode.prototype.get data): |
| (WI.ScriptTimelineDataGridNode.prototype.get subtitle): |
| (WI.ScriptTimelineDataGridNode.prototype.createCellContent): |
| (WI.ScriptTimelineDataGridNode.prototype.get records): Deleted. |
| (WI.ScriptTimelineDataGridNode.prototype.get baseStartTime): Deleted. |
| (WI.ScriptTimelineDataGridNode.prototype.get rangeStartTime): Deleted. |
| (WI.ScriptTimelineDataGridNode.prototype.get rangeEndTime): Deleted. |
| (WI.ScriptTimelineDataGridNode.prototype.updateRangeTimes): Deleted. |
| |
| * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js: |
| (WI.SourceCodeTimelineTimelineDataGridNode.prototype.get data): |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView): |
| (WI.HeapAllocationsTimelineView.prototype.layout): |
| (WI.HeapAllocationsTimelineView.prototype.reset): |
| * UserInterface/Views/LayoutTimelineView.js: |
| (WI.LayoutTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/MediaTimelineView.js: |
| (WI.MediaTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/NetworkTimelineView.js: |
| (WI.NetworkTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/OverviewTimelineView.js: |
| (WI.OverviewTimelineView.prototype._addResourceToDataGridIfNeeded): |
| (WI.OverviewTimelineView.prototype._addSourceCodeTimeline): |
| * UserInterface/Views/RenderingFrameTimelineView.js: |
| (WI.RenderingFrameTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/ScriptDetailsTimelineView.js: |
| (WI.ScriptDetailsTimelineView.prototype.layout): |
| (WI.ScriptDetailsTimelineView.prototype._processPendingRecords): |
| Update Timeline `WI.DataGrid` views to use the new constructor format. |
| |
| * UserInterface/Views/ResourceTimelineDataGridNode.css: |
| (.resource-timing-popover-content .data-grid td.graph-column): |
| Drive-by: add extra padding before/after resource timing bars shown when hovering. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: changes to CSS resources only take affect once editing stops |
| https://bugs.webkit.org/show_bug.cgi?id=195774 |
| <rdar://problem/48905413> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound): |
| (WI.CSSManager.prototype._resourceContentDidChange): |
| (WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent): |
| (WI.CSSManager.prototype._updateResourceContent): |
| Use a `Throttler` instead of a 500ms debounce. |
| |
| 2019-03-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Search: allow DOM searches to be case sensitive |
| https://bugs.webkit.org/show_bug.cgi?id=194673 |
| <rdar://problem/48087577> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.performSearch.contextNodesReady): |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.performSearch.callback): Deleted. |
| (WI.DOMManager.prototype.performSearch): Deleted. |
| (WI.DOMManager.prototype.searchResult.mycallback): Deleted. |
| (WI.DOMManager.prototype.searchResult): Deleted. |
| (WI.DOMManager.prototype.cancelSearch): Deleted. |
| Drive-by: remove unused code. |
| |
| 2019-03-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: provide option to group by path |
| https://bugs.webkit.org/show_bug.cgi?id=195203 |
| <rdar://problem/27340680> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Create top-level folders for each origin and nest all resources (in a folder chain) underneath. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.closed): |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.searchTreeOutline): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject): |
| (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addResource): |
| (WI.SourcesNavigationSidebarPanel.prototype._addScript): |
| (WI.SourcesNavigationSidebarPanel.prototype._addWorkerTargetWithMainResource): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeMouseDown.addOption): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeMouseDown): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceGroupingModeChanged): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleFrameMainResourceDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.breakpoints > .header > .options .create-breakpoint): Added. |
| (.sidebar > .panel.navigation.sources > .content > .resources): Added. |
| (.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread): Added. |
| (.sidebar > .panel.navigation.sources > .content .tree-outline.single-thread > .item.thread): Added. |
| (.sidebar > .panel.navigation.sources > .content > .details-section.scripts:not(.collapsed)): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread): Deleted. |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread): Deleted. |
| Drive-by: fix "No Filter Results" message view to not overlap eachother. |
| Drive-by: try to be more smart about what tree we focus when selecting a represented object. |
| |
| * UserInterface/Views/ResourceTreeElement.js: |
| (WI.ResourceTreeElement): |
| (WI.ResourceTreeElement.prototype.get mainTitleText): |
| (WI.ResourceTreeElement.prototype._updateTitles): |
| * UserInterface/Base/URLUtilities.js: |
| (WI.displayNameForURL): |
| Provide a way for the display name to use a directory "/" instead of the last path component. |
| This is needed in cases where the loaded resource is an implicit "index.*". |
| |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WI.GeneralTreeElement.prototype.createFoldersAsNeededForSubpath): Added. |
| * UserInterface/Views/SourceCodeTreeElement.js: |
| (WI.SourceCodeTreeElement.prototype.createFoldersAsNeededForSubpath): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Models/Resource.js: |
| |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section > .header .go-to-arrow): |
| Drive-by: vertically center go-to-arrow. |
| |
| * UserInterface/Protocol/InspectorFrontendAPI.js: |
| (InspectorFrontendAPI.contextMenuItemSelected): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.get filterNavigationItems): |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._generateSortComparator): |
| (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable): |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._handleGroupMediaRequestsByDOMNodeCheckedDidChange): Added. |
| (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Deleted. |
| Rename the `groupByNode` setting to be more specific. |
| |
| 2019-03-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - the right edge of each column should align with a CPU measurement |
| https://bugs.webkit.org/show_bug.cgi?id=195789 |
| <rdar://problem/48915271> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Right now, each column is rendered such that the middle of the column is aligned with the |
| time of the CPU measurement. This could potentially be misleading, as the width/position of |
| the bar implies that there was a period of time after the actual time of the CPU measurement |
| that should be "attributed" to that same CPU measurement. |
| |
| 1 2 3 |
| _______ |
| [ * ] |
| [ * ]_______ |
| [ * ][ * ] |
| _______[ * ][ * ] |
| [ * ][ * ][ * ] |
| [__*__][__*__][__*__] |
| A B C D E F |
| |
| In this example, one might "attribute" any work done at time B to record 1, when in reality, |
| it should be "attributed" to record 2, since the CPU measurement had already been taken by |
| the time B was captured, meaning that the work for B hadn't yet been done and could |
| therefore not have affected the CPU measurement for record 1. |
| |
| We should be rendering the columns such that the CPU measurement aligns with the trailing |
| edge of the column, so that all of the work that could be "attributed" to a given CPU |
| measurement comes before it. |
| |
| 1 2 3 |
| _______ ___ |
| [ *] [ |
| [ *]_______[ |
| [ *][ *][ |
| ____[ *][ *][ |
| *][ *][ *][ |
| __*][____*][____*][__ |
| A B C D E F |
| |
| NOTE: this "rendering" isn't exactly accurate, as the `*` should overlap the `]`. |
| |
| Legend: |
| - `[ ]` represents a column for a CPU measurement |
| - `*` represents the time when the measurement actually takes place |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| (WI.CPUTimelineOverviewGraph.prototype._handleChartClick): |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._recordSelected): |
| |
| 2019-03-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Provide $event in the console when paused on an event listener |
| https://bugs.webkit.org/show_bug.cgi?id=188672 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.receivedPropertyNames): |
| |
| 2019-03-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: "Capture Screenshot" should only be shown if the node is attached |
| https://bugs.webkit.org/show_bug.cgi?id=195793 |
| <rdar://problem/48916594> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode.prototype.get attached): Added. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._populateTagContextMenu): |
| |
| 2019-03-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: HAR Extension for `serverIPAddress` port number |
| https://bugs.webkit.org/show_bug.cgi?id=195695 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.entry): |
| (WI.HARBuilder.port): |
| * UserInterface/Models/LocalResource.js: |
| (WI.LocalResource.fromHAREntry): |
| |
| 2019-03-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Changes: style attribute changes aren't being tracked |
| https://bugs.webkit.org/show_bug.cgi?id=193859 |
| <rdar://problem/47568977> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager): |
| (WI.CSSManager.prototype.get modifiedStyles): |
| (WI.CSSManager.prototype.addModifiedStyle): |
| (WI.CSSManager.prototype._mainResourceDidChange): |
| (WI.CSSManager.prototype.get modifiedCSSRules): Deleted. |
| (WI.CSSManager.prototype.addModifiedCSSRule): Deleted. |
| (WI.CSSManager.prototype.removeModifiedCSSRule): Deleted. |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule.prototype.get stringId): Deleted. |
| (WI.CSSRule.prototype.markModified): Deleted. |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.get stringId): |
| (WI.CSSStyleDeclaration.prototype.markModified): |
| Inline styles weren't tracked because they didn't have owner rules. |
| Track style declarations instead of CSS rules. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.css: |
| (.sidebar > .panel.changes-panel .css-rule): |
| (.sidebar > .panel.changes-panel .css-rule + .css-rule): |
| (.changes-panel .selector.style-attribute): |
| (.changes-panel .selector:not(.style-attribute)): |
| (.changes-panel .css-property-line > .property): |
| (.changes-panel .css-property-line.unchanged): Deleted. |
| Drive-by: use text-color-secondary for unchanged properties instead of altering opacity. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| (WI.ChangesDetailsSidebarPanel.prototype.layout): |
| (WI.ChangesDetailsSidebarPanel.prototype._createRuleElement): |
| For an inline style declaration, instead of showing a CSS source file location show an appropriate selector for its DOM node. |
| |
| 2019-03-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: HAR Extension for Resource Priority |
| https://bugs.webkit.org/show_bug.cgi?id=195693 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.entry): |
| (WI.HARBuilder.priority): |
| (WI.HARBuilder.networkPriorityFromHARPriority): |
| Include priority custom extension. |
| |
| * UserInterface/Models/LocalResource.js: |
| (WI.LocalResource.fromHAREntry): |
| Import priority. |
| |
| 2019-03-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Give long thread names a tooltip if they could be ellipsized |
| https://bugs.webkit.org/show_bug.cgi?id=195314 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUUsageView.js: |
| (WI.CPUUsageView): |
| |
| 2019-03-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Reduce the intensity of the orange overlay color in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=195772 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Variables.css: |
| (@media (prefers-color-scheme: dark)): |
| (:root): |
| |
| 2019-03-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timelines - Import / Export Timeline Recordings |
| https://bugs.webkit.org/show_bug.cgi?id=195709 |
| <rdar://problem/23188921> |
| |
| Reviewed by Devin Rousso. |
| |
| Timeline exporting saves TimelineRecording and TimelineOverview state. |
| The TimelineRecording includes all kinds of model objects, such as |
| records, markers, memory pressure events, etc. It also includes raw |
| protocol data, such as script profiler samples. TimelineOverview |
| includes some of the view state to restore, such as the selected |
| time range, zoom level, and selected timeline. |
| |
| Timeline importing constructs a new TimelineRecording by replaying |
| the records, markers, and other events, as well as re-initializing |
| more state. To finally display the imported recording, the content |
| view will immediately initialize start/current/end times and the |
| overview will restore the view state. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New strings. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.synthesizeImportError): |
| (WI.TimelineManager.prototype.importRecording): |
| Import API. |
| |
| (WI.TimelineManager.prototype.scriptProfilerTrackingCompleted): |
| Initialize the samples on the recording via a different path |
| so that the data can be saved for exporting. |
| |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording): |
| (WI.TimelineRecording.import): |
| (WI.TimelineRecording.prototype.exportData): |
| (WI.TimelineRecording.prototype.get capturing): |
| (WI.TimelineRecording.prototype.get imported): |
| (WI.TimelineRecording.prototype.unloaded): |
| (WI.TimelineRecording.prototype.reset): |
| (WI.TimelineRecording.prototype.addEventMarker): |
| (WI.TimelineRecording.prototype.addRecord): |
| (WI.TimelineRecording.prototype.addMemoryPressureEvent): |
| (WI.TimelineRecording.prototype.initializeCallingContextTrees): |
| (WI.TimelineRecording.prototype.canExport): |
| Save data at the TimelineRecording level that can be used for export. |
| We only allow exporting a TimelineRecording that has started/stopped |
| at least once and is not currently capturing. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype.get navigationItems): |
| (WI.TimelineRecordingContentView.prototype.get supportsSave): |
| (WI.TimelineRecordingContentView.prototype.get saveData): |
| (WI.TimelineRecordingContentView.prototype.shown): |
| (WI.TimelineRecordingContentView.prototype._capturingStarted): |
| (WI.TimelineRecordingContentView.prototype._capturingStopped): |
| (WI.TimelineRecordingContentView.prototype._initializeImportedRecording): |
| (WI.TimelineRecordingContentView.prototype._exportTimelineRecording): |
| (WI.TimelineRecordingContentView.prototype._importButtonNavigationItemClicked): |
| (WI.TimelineRecordingContentView.prototype._recordingReset): |
| Add Import and Export buttons in the Timeline navigation bar. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype.exportData): |
| (WI.TimelineOverview.prototype._instrumentAdded): |
| (WI.TimelineOverview.prototype._recordingImported): |
| When importing a recording update the TimelineOverview state |
| soon afterwards. |
| |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord.fromJSON): |
| (WI.CPUTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/GarbageCollection.js: |
| (WI.GarbageCollection.fromJSON): |
| (WI.GarbageCollection.prototype.toJSON): |
| * UserInterface/Models/Geometry.js: |
| (WI.Quad.fromJSON): |
| (WI.Quad.prototype.toJSON): |
| * UserInterface/Models/HeapAllocationsTimelineRecord.js: |
| (WI.HeapAllocationsTimelineRecord.fromJSON): |
| (WI.HeapAllocationsTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/LayoutTimelineRecord.js: |
| (WI.LayoutTimelineRecord.fromJSON): |
| (WI.LayoutTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/MediaTimelineRecord.js: |
| (WI.MediaTimelineRecord.fromJSON): |
| (WI.MediaTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/MemoryPressureEvent.js: |
| (WI.MemoryPressureEvent.fromJSON): |
| (WI.MemoryPressureEvent.prototype.toJSON): |
| * UserInterface/Models/MemoryTimelineRecord.js: |
| (WI.MemoryTimelineRecord): |
| (WI.MemoryTimelineRecord.fromJSON): |
| (WI.MemoryTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/RenderingFrameTimelineRecord.js: |
| (WI.RenderingFrameTimelineRecord.fromJSON): |
| (WI.RenderingFrameTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/ResourceTimelineRecord.js: |
| (WI.ResourceTimelineRecord.fromJSON): |
| (WI.ResourceTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord.fromJSON): |
| (WI.ScriptTimelineRecord.prototype.toJSON): |
| * UserInterface/Models/TimelineMarker.js: |
| (WI.TimelineMarker.fromJSON): |
| (WI.TimelineMarker.prototype.toJSON): |
| (WI.TimelineMarker.prototype.get type): |
| (WI.TimelineMarker.prototype.get details): |
| (WI.TimelineMarker.prototype.set time): |
| (WI.TimelineMarker): |
| * UserInterface/Models/TimelineRecord.js: |
| (WI.TimelineRecord.fromJSON): |
| (WI.TimelineRecord.prototype.toJSON): |
| Import / Export toJSON / fromJSON implementations. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph): |
| (WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded): |
| (WI.CPUTimelineOverviewGraph.prototype._processRecord): |
| * UserInterface/Views/LayoutTimelineOverviewGraph.js: |
| (WI.LayoutTimelineOverviewGraph): |
| (WI.LayoutTimelineOverviewGraph.prototype._layoutTimelineRecordAdded): |
| (WI.LayoutTimelineOverviewGraph.prototype._processRecord): |
| * UserInterface/Views/LayoutTimelineView.js: |
| (WI.LayoutTimelineView): |
| (WI.LayoutTimelineView.prototype._layoutTimelineRecordAdded): |
| (WI.LayoutTimelineView.prototype._processRecord): |
| * UserInterface/Views/MediaTimelineView.js: |
| (WI.MediaTimelineView): |
| (WI.MediaTimelineView.prototype._handleRecordAdded): |
| (WI.MediaTimelineView.prototype._processRecord): |
| * UserInterface/Views/MemoryTimelineOverviewGraph.js: |
| (WI.MemoryTimelineOverviewGraph): |
| (WI.MemoryTimelineOverviewGraph.prototype._memoryTimelineRecordAdded): |
| (WI.MemoryTimelineOverviewGraph.prototype._processRecord): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView): |
| (WI.MemoryTimelineView.prototype._memoryTimelineRecordAdded): |
| (WI.MemoryTimelineView.prototype._processRecord): |
| * UserInterface/Views/NetworkTimelineOverviewGraph.js: |
| (WI.NetworkTimelineOverviewGraph): |
| (WI.NetworkTimelineOverviewGraph.prototype.reset): |
| (WI.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded): |
| (WI.NetworkTimelineOverviewGraph.prototype._processRecord): |
| (WI.NetworkTimelineOverviewGraph.prototype._networkTimelineRecordAdded.compareByStartTime): Deleted. |
| * UserInterface/Views/NetworkTimelineView.js: |
| (WI.NetworkTimelineView): |
| (WI.NetworkTimelineView.prototype._networkTimelineRecordAdded): |
| (WI.NetworkTimelineView.prototype._processRecord): |
| * UserInterface/Views/RenderingFrameTimelineView.js: |
| (WI.RenderingFrameTimelineView): |
| (WI.RenderingFrameTimelineView.prototype._renderingFrameTimelineRecordAdded): |
| (WI.RenderingFrameTimelineView.prototype._processRecord): |
| * UserInterface/Views/ScriptDetailsTimelineView.js: |
| (WI.ScriptDetailsTimelineView): |
| (WI.ScriptDetailsTimelineView.prototype._scriptTimelineRecordAdded): |
| (WI.ScriptDetailsTimelineView.prototype._processRecord): |
| Add common _processRecord path to each timeline OverviewGraph and TimelineView. |
| By calling this in construction we populate graphs with TimelineRecords that |
| may have already existed. This is necessary for imports, but this also fixes |
| the case where you enable a timeline that had data and it didn't show data. |
| |
| * UserInterface/Views/LayoutTimelineOverviewGraph.css: |
| (.timeline-overview-graph.layout-overview > .graph-row): |
| (.timeline-overview-graph.layout-overview > .graph-row > .timeline-record-bar): |
| (.timeline-overview-graph.layout-overview > .graph-row > .timeline-record-bar > .segment): |
| (.timeline-overview-graph.layout > .graph-row): Deleted. |
| (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar): Deleted. |
| (.timeline-overview-graph.layout > .graph-row > .timeline-record-bar > .segment): Deleted. |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.timeline-record-type-layout.paint > .segment,): |
| (.timeline-record-bar.timeline-record-type-layout.layout-timeline-record-paint > .segment,): Deleted. |
| We simplified some of the sub-record type enum strings. To do this we needed to change |
| "layout" to "layout-overview" to avoid a conflict. |
| |
| 2019-03-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network - Toggle Between Live Activity and Imported HAR resource collections |
| https://bugs.webkit.org/show_bug.cgi?id=195734 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Images/NetworkHAR.svg: Added. |
| * UserInterface/Images/NetworkOverview.svg: Added. |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.content-view.tab.network > .content-browser > .navigation-bar .hierarchical-path .icon): |
| (.network-overview-icon > .icon): |
| (.network-har-icon > .icon): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.get navigationItems): |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype.tableIndexForRepresentedObject): |
| (WI.NetworkTableContentView.prototype.tableRepresentedObjectForIndex): |
| (WI.NetworkTableContentView.prototype.tableNumberOfRows): |
| (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked): |
| (WI.NetworkTableContentView.prototype.tableSelectionDidChange): |
| (WI.NetworkTableContentView.prototype.tablePopulateCell): |
| (WI.NetworkTableContentView.prototype._addCollection): |
| (WI.NetworkTableContentView.prototype._setActiveCollection): |
| (WI.NetworkTableContentView.prototype._addCollectionPathComponent): |
| (WI.NetworkTableContentView.prototype._collectionsHierarchicalPathComponentWasSelected): |
| (WI.NetworkTableContentView.prototype._changeCollection): |
| (WI.NetworkTableContentView.prototype.handleClearShortcut): |
| (WI.NetworkTableContentView.prototype._updateWaterfallTimeRange): |
| (WI.NetworkTableContentView.prototype._updateWaterfallTimelineRuler): |
| (WI.NetworkTableContentView.prototype._canExportHAR): |
| (WI.NetworkTableContentView.prototype._processPendingEntries): |
| (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded): |
| (WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject): |
| (WI.NetworkTableContentView.prototype._updateEntryForResource): |
| (WI.NetworkTableContentView.prototype._updateEmptyFilterResultsMessage): |
| (WI.NetworkTableContentView.prototype._mainResourceDidChange): |
| (WI.NetworkTableContentView.prototype._mainFrameDidChange): |
| (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish): |
| (WI.NetworkTableContentView.prototype._resourceLoadingDidFail): |
| (WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange): |
| (WI.NetworkTableContentView.prototype._handleResourceAdded): |
| (WI.NetworkTableContentView.prototype._runForMainCollection): |
| (WI.NetworkTableContentView.prototype._isShowingMainCollection): |
| (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable): |
| (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): |
| (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged): |
| (WI.NetworkTableContentView.prototype._updateSort): |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._urlFilterDidChange): |
| (WI.NetworkTableContentView.prototype._HARResources): |
| (WI.NetworkTableContentView.prototype._importHAR): |
| Introduce the concept of collections that can be swapped in/out |
| to re-render the Network Table with different contents. |
| |
| 2019-03-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to capture a screenshot of a node from within the page |
| https://bugs.webkit.org/show_bug.cgi?id=194279 |
| <rdar://problem/10731573> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add `console.screenshot` functionality, which displays a screenshot of a given object (if |
| able) within Web Inspector's Console tab. From there, it can be viewed and saved. |
| |
| Currently, `console.screenshot` will |
| - capture an image of a `Node` (if provided) |
| - capture an image of the viewport if nothing is provided |
| |
| * UserInterface/Models/ConsoleMessage.js: |
| (WI.ConsoleMessage): |
| * UserInterface/Views/ConsoleCommandView.js: |
| (WI.ConsoleCommandView.prototype.render): |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype.render): |
| (WI.ConsoleMessageView.prototype.toClipboardString): |
| (WI.ConsoleMessageView.prototype._appendMessageTextAndArguments): |
| (WI.ConsoleMessageView.prototype._appendSavedResultIndex): |
| (WI.ConsoleMessageView.prototype._appendStackTrace): |
| (WI.ConsoleMessageView.prototype._makeExpandable): |
| (WI.ConsoleMessageView.prototype._handleContextMenu): Added. |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-user-command.special-user-log > .console-message-body): Added. |
| (.console-message-body): Added. |
| (.console-message-body > span): Added. |
| (.console-message-body > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)): Added. |
| (.console-message-body > .console-image): Added. |
| (.console-message-body > .show-grid): Added. |
| (.console-error-level .console-message-body): Added. |
| (.console-warning-level .console-message-body): Added. |
| (.console-log-level.console-image-container::before): Added. |
| (.console-user-command > .console-message-body): Added. |
| (.console-warning-level .console-message-body): Added. |
| (.console-error-level .console-message-body): Added. |
| (.console-user-command > .console-message-body): Added. |
| (.console-user-command.special-user-log > .console-message-text): Deleted. |
| (.console-message-text): Deleted. |
| (.console-message-text > span): Deleted. |
| (.console-message-text > span > :matches(.console-message-enclosed, .console-message-preview, .console-message-preview-divider)): Deleted. |
| (.console-error-level .console-message-text): Deleted. |
| (.console-warning-level .console-message-text): Deleted. |
| (.console-user-command > .console-message-text): Deleted. |
| (.console-warning-level .console-message-text): Deleted. |
| (.console-error-level .console-message-text): Deleted. |
| (.console-user-command > .console-message-text): Deleted. |
| * UserInterface/Views/LogContentView.css: |
| (.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-text .highlighted): Added. |
| (.search-in-progress .console-item:not(.filtered-out-by-search).special-user-log .console-message-body .highlighted): Deleted. |
| Renamed variables/classes to be more semantically correct when the content is an image. |
| - `_messageTextElement` to `_messageBodyElement` (JS) |
| - `.console-message-text` to `.console-message-body` (CSS) |
| |
| * UserInterface/Controllers/JavaScriptLogViewController.js: |
| (WI.JavaScriptLogViewController.prototype.renderPendingMessages): |
| |
| * UserInterface/Views/Main.css: |
| (:matches(img, canvas).show-grid): |
| (@media (prefers-color-scheme: dark) :matches(img, canvas).show-grid): |
| |
| * UserInterface/Base/FileUtilities.js: |
| (WI.FileUtilities.screenshotString): Added. |
| |
| * UserInterface/Models/NativeFunctionParameters.js: |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| |
| * UserInterface/Images/ConsoleImage.svg: Copied from UserInterface/Images/Canvas.svg. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Jump to effective property button doesn't hide after overridden property become effective |
| https://bugs.webkit.org/show_bug.cgi?id=195770 |
| <rdar://problem/48903634> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property .select-effective-property): Added. |
| (.spreadsheet-style-declaration-editor .property.overridden .select-effective-property): Deleted. |
| Hide `.select-effective-property` element for properties that aren't overridden. |
| |
| 2019-03-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: Canvas: the first processed action should be selected as soon as it's available if no previous selected action exists |
| https://bugs.webkit.org/show_bug.cgi?id=195732 |
| <rdar://problem/48875214> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): |
| Rather than wait until the entire recording is ready, set the selected action as soon as the |
| first action is ready (assuming there isn't already a selected action). |
| |
| 2019-03-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network - HAR Import |
| https://bugs.webkit.org/show_bug.cgi?id=195642 |
| <rdar://problem/34820974> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js |
| * UserInterface/Test.html: |
| * UserInterface/Test.html: |
| New strings and resources. |
| |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.dateFromHARDate): |
| (WI.HARBuilder.protocolFromHARProtocol): |
| (WI.HARBuilder.responseSourceFromHARFetchType): |
| Reverse parsers from HAR to WI.Resource types. |
| |
| * UserInterface/Models/LocalResource.js: Added. |
| (WI.LocalResource): |
| (WI.LocalResource.headersArrayToHeadersObject): |
| (WI.LocalResource.fromHAREntry): |
| (WI.LocalResource.prototype.hasContent): |
| (WI.LocalResource.prototype.setContent): |
| (WI.LocalResource.prototype.requestContentFromBackend): |
| A Resource subclass with data fully supplied in the frontend. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager): |
| (WI.NetworkManager.synthesizeImportError): |
| (WI.NetworkManager.prototype.localResourceForURL): |
| (WI.NetworkManager.prototype.processHAR): |
| Process a HAR and extract local resources. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype._handleResourceAdded): |
| (WI.NetworkTableContentView.prototype._importHAR): |
| Add an import button. When an import succeeds reset the |
| table and only show imported resources (ignoring page |
| loaded resources). |
| |
| 2019-03-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: getEventListeners should work for any EventTarget |
| https://bugs.webkit.org/show_bug.cgi?id=195713 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/NativeFunctionParameters.js: |
| |
| 2019-03-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles: `::-webkit-scrollbar*` rules aren't shown |
| https://bugs.webkit.org/show_bug.cgi?id=195123 |
| <rdar://problem/48450148> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager.displayNameForPseudoId): Added. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.static uniqueOrderedStyles): Added. |
| (WI.DOMNodeStyles.prototype.get uniqueOrderedStyles): |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype._handleSectionFilterApplied): |
| Rather than iterate over the `WI.DOMNode`'s list of pseudo-elements (which is only ::before |
| and ::after), we iterate over the `WI.DOMNodeStyle`'s list of pseudo-element rules. This is |
| an object where the key is a `CSS.PseudoId` and the value is an object containing all the |
| matched rules and ordered styles for that pseudo-type. We can preserve the current |
| functionality by using the ::before/::after `WI.DOMNode` when we encounter one of those |
| pseudo-ids. |
| |
| An additional benefit of this change is that `::before`/`::after` styles will still appear |
| in the Rules panel even if they don't have a `content` property set (e.g. when the |
| `::before`/`::after` pseudo-element doesn't exist). This is because the styles are no longer |
| fetched from those pseudo-element nodes directly, but rather as a matched style for the |
| parent node. As such, editing a `content` property to become invalid/disablde in a |
| `::before`/`::after` rule won't make the entire rule disappeaer. |
| |
| 2019-03-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: we should show artificial context menus on mousedown instead of click |
| https://bugs.webkit.org/show_bug.cgi?id=195494 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ContextMenu.js: |
| (WI.ContextMenu): |
| (WI.ContextMenu.prototype.show): |
| (WI.ContextMenu.prototype.addBeforeShowCallback): Added. |
| (WI.ContextMenu.prototype.handleEvent): |
| Provide a way to register a callback that will be called right as the "contextmenu" event is |
| handled, but before the context menu is actually shown. Since "mousedown" events are also |
| fired when/before a "contextmenu" event is fired, each of the below callers has to maintain |
| some state indicating "we are about to show a context menu, so ignore all "mousedown" events |
| until that time". Without this, the below callers wouldn't be able to tell when the context |
| menu is finally shown. |
| |
| * UserInterface/Base/SearchUtilities.js: |
| (WI.SearchUtilities.createSettingsButton): |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype._handleCanvasElementButtonMouseDown): Added. |
| (WI.CanvasContentView.prototype._handleViewShaderButtonMouseDown): Added. |
| (WI.CanvasContentView.prototype._handleViewRecordingButtonMouseDown): Added. |
| (WI.CanvasContentView.prototype._canvasElementButtonClicked): Deleted. |
| (WI.CanvasContentView.prototype._handleViewShaderButtonClicked): Deleted. |
| (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked): Deleted. |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointMouseDown): Added. |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Deleted. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointMouseDown): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointClicked): Deleted. |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar.prototype._handleMouseDown): |
| * UserInterface/Views/LegacyTabBar.js: |
| (WI.LegacyTabBar.prototype._handleMouseDown): |
| |
| 2019-03-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: pausing in an inline script on a page with a URL query creates an Extra Script |
| https://bugs.webkit.org/show_bug.cgi?id=195705 |
| <rdar://problem/48853820> |
| |
| Reviewed by Antoine Quint. |
| |
| * UserInterface/Models/Script.js: |
| (WI.Script.prototype._resolveResource): |
| If the page's URL has a query parameter, the payload we receive for any inline <script>s |
| doesn't include the query parameter as part of its URL. As such, if there isn't an existing |
| resource with a URL that exactly matches the URL of the script and if the URL of the main |
| resource for the script's target starts with the URL of the script, we assume that the |
| script "belongs" to the target's main resource and associate the script with it as such. |
| |
| 2019-03-13 Keith Rollin <krollin@apple.com> |
| |
| Add support for new StagedFrameworks layout |
| https://bugs.webkit.org/show_bug.cgi?id=195543 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| When creating the WebKit layout for out-of-band Safari/WebKit updates, |
| use an optional path prefix when called for. |
| |
| Opportunistic cleanup: remove unused |
| OTHER_LDFLAGS_VERSIONED_FRAMEWORK_PATH variable, which otherwise would |
| have needlessly been updated to also incorporate the new prefix. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/WebKitTargetConditionals.xcconfig: Added. |
| |
| 2019-03-13 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r240946): Web Inspector: Styles: removing selected property doesn't update overridden status |
| https://bugs.webkit.org/show_bug.cgi?id=195389 |
| <rdar://problem/48658929> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype.changeStyleText): |
| Call DOMNodeStyles.prototype.refresh after the callback. No updates |
| to CSSStyleDeclaration happen until the callback is called. |
| |
| 2019-03-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Protocol Logging: log messages with backtrace if inspector^2 is open |
| https://bugs.webkit.org/show_bug.cgi?id=195687 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WI.LoggingProtocolTracer.prototype._processEntry): |
| |
| 2019-03-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r242737): unnecessary semicolon added when populating WI.TreeOutline stylesheet |
| https://bugs.webkit.org/show_bug.cgi?id=195689 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline._generateStyleRulesIfNeeded): |
| |
| 2019-03-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network - HAR Export duplicates blocked/send time if there was no dns/connect block |
| https://bugs.webkit.org/show_bug.cgi?id=195655 |
| <rdar://problem/48831152> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.timings): |
| |
| 2019-03-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: allow image collections to be filtered by type |
| https://bugs.webkit.org/show_bug.cgi?id=195630 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ResourceCollectionContentView.js: |
| (WI.ResourceCollectionContentView): |
| (WI.ResourceCollectionContentView.prototype.get navigationItems): Added. |
| (WI.ResourceCollectionContentView.prototype.contentViewAdded): |
| (WI.ResourceCollectionContentView.prototype.contentViewRemoved): Added. |
| (WI.ResourceCollectionContentView.prototype._updateImageTypeScopeBar): Added. |
| (WI.ResourceCollectionContentView.prototype._handleImageTypeSelectionChanged): Added. |
| * UserInterface/Views/ResourceCollectionContentView.css: Asdded. |
| (.resource-collection-image-type-scope-bar.default-item-selected): |
| |
| * UserInterface/Views/CollectionContentView.css: |
| (.content-view.collection > .content-view[hidden]): Added. |
| |
| * UserInterface/Views/ScopeBarItem.js: |
| (WI.ScopeBarItem.prototype.set hidden): |
| * UserInterface/Views/MultipleScopeBarItem.js: |
| (WI.MultipleScopeBarItem.prototype.set scopeBarItems): |
| (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem): |
| (WI.MultipleScopeBarItem.prototype.get _visibleScopeBarItems): Added. |
| (WI.MultipleScopeBarItem.prototype._selectElementSelectionChanged): |
| (WI.MultipleScopeBarItem.prototype._handleItemHiddenChanged): Added. |
| Dispatch an event when an item is hidden so that any owner `WI.MultipleScopeBarItem` can |
| rerender it's <select> without that item. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| |
| 2019-03-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Keyboard shortcut for settings tab too greedy on non-US keyboards |
| https://bugs.webkit.org/show_bug.cgi?id=192947 |
| <rdar://problem/46886779> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| (WI._showSettingsTab): |
| |
| 2019-03-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: provide node context menu items for event listeners sorted by node |
| https://bugs.webkit.org/show_bug.cgi?id=195633 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/DOMUtilities.js: |
| (WI.linkifyNodeReferenceElement): |
| (WI.bindInteractionsForNodeToElement): Added. |
| Split logic for adding event listeners into a separate function so it can be used on |
| existing DOM without modifying it. |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode): |
| |
| 2019-03-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM Debugger: remove left padding when the last DOM breakpoint is removed |
| https://bugs.webkit.org/show_bug.cgi?id=195522 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype._updateBreakpointStatus): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.get hasBreakpoint): Added. |
| |
| 2019-03-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: export recording as HTML |
| https://bugs.webkit.org/show_bug.cgi?id=195311 |
| <rdar://problem/48588673> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.prototype.async swizzle): |
| (WI.Recording.prototype.toHTML): Added. |
| (WI.Recording.prototype.toHTML.escapeHTML): Added. |
| (WI.Recording.prototype.toHTML.processObject): Added. |
| (WI.Recording.prototype.toHTML.processValue): Added. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype._exportRecording): |
| (WI.RecordingContentView.prototype._exportReduction): Added. |
| (WI.RecordingContentView.prototype._updateExportButton): Added. |
| (WI.RecordingContentView.prototype._handleExportNavigationItemClicked): Added. |
| (WI.RecordingContentView.prototype._handleRecordingProcessedAction): |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView): |
| * UserInterface/Views/HeapSnapshotContentView.js: |
| (WI.HeapSnapshotContentView): |
| Drive-by: s/`toolTip`/`tooltip`. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: there should be a centralized place for reusable code |
| https://bugs.webkit.org/show_bug.cgi?id=195265 |
| <rdar://problem/47040673> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.async start): |
| (WI.AuditManager.prototype._topLevelTestForTest): Added. |
| (WI.AuditManager.prototype._topLevelTestForTest.walk): Added. |
| |
| * UserInterface/Models/AuditTestBase.js: |
| (WI.AuditTestBase): |
| (WI.AuditTestBase.prototype.async setup): Added. |
| (WI.AuditTestBase.toJSON): |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.async.fromPayload): |
| (WI.AuditTestCase.prototype.async run.async parseResponse): |
| Allow additional data to be passed back to the result's `data` for testing. |
| |
| * UserInterface/Models/AuditTestGroup.js: |
| (WI.AuditTestGroup.async.fromPayload): |
| |
| 2019-03-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timelines - Improve handling of past recordings (readonly) |
| https://bugs.webkit.org/show_bug.cgi?id=195594 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype._clearTimeline): |
| Don't allow clearing of a readonly recording. |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.prototype._toggleRecordingOnSpacebar): |
| Don't do anything when viewing a readonly recording. |
| |
| (WI.TimelineTabContentView.prototype._recordButtonClicked): |
| Start a new recording if viewing a readonly recording. |
| |
| 2019-03-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION: Network Cookies Table does not load |
| https://bugs.webkit.org/show_bug.cgi?id=195599 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ResourceCookiesContentView.js: |
| (WI.ResourceCookiesContentView.prototype.tableIndexForRepresentedObject): |
| (WI.ResourceCookiesContentView.prototype.tableRepresentedObjectForIndex): |
| Include needed delegate methods. |
| |
| 2019-03-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: use -webkit-{margin,padding}-{start,end} instead of [dir={ltr/rtl}] rules |
| https://bugs.webkit.org/show_bug.cgi?id=195569 |
| <rdar://problem/48778727> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.css: |
| * UserInterface/Views/BoxModelDetailsSectionRow.css: |
| * UserInterface/Views/BreakpointActionView.css: |
| * UserInterface/Views/BreakpointPopoverController.css: |
| * UserInterface/Views/CPUTimelineView.css: |
| * UserInterface/Views/CallFrameTreeElement.css: |
| * UserInterface/Views/CallFrameView.css: |
| * UserInterface/Views/DOMTreeContentView.css: |
| * UserInterface/Views/DOMTreeOutline.css: |
| * UserInterface/Views/DashboardContainerView.css: |
| * UserInterface/Views/DataGrid.css: |
| * UserInterface/Views/DebuggerDashboardView.css: |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| * UserInterface/Views/DefaultDashboardView.css: |
| * UserInterface/Views/DetailsSection.css: |
| * UserInterface/Views/FilterBar.css: |
| * UserInterface/Views/FindBanner.css: |
| * UserInterface/Views/FontResourceContentView.css: |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| * UserInterface/Views/HierarchicalPathComponent.css: |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.css: |
| * UserInterface/Views/Main.css: |
| * UserInterface/Views/NetworkTableContentView.css: |
| * UserInterface/Views/OpenResourceDialog.css: |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| * UserInterface/Views/ScopeRadioButtonNavigationItem.css: |
| * UserInterface/Views/SettingsTabContentView.css: |
| * UserInterface/Views/ThreadTreeElement.css: |
| * UserInterface/Views/Toolbar.css: |
| * UserInterface/Views/TreeOutline.css: |
| * UserInterface/Views/TypeTreeElement.css: |
| * UserInterface/Views/TypeTreeView.css: |
| * UserInterface/Views/URLBreakpointPopover.css: |
| * UserInterface/Views/WebSocketContentView.css: |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement.static _getClassNames): |
| Replace class `.action` with `.recording-action` for better uniqueness/clarity. |
| |
| 2019-03-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOMDebugger: protocol error on first open |
| https://bugs.webkit.org/show_bug.cgi?id=195248 |
| <rdar://problem/48538465> |
| |
| Unreviewed followup of r242743 to fix test inspector/dom-debugger/dom-breakpoints.html. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.addDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint): |
| Still attempt to resolve the DOM breakpoint if it already has a `domNodeIdentifier` so that |
| it will get added to the node's frame's DOM breakpoint map. Without this, some breakpoints |
| might get "missed" when calling `WI.domDebuggerManager.removeDOMBreakpointsForNode`. |
| |
| 2019-03-11 Justin Fan <justin_fan@apple.com> |
| |
| [Web GPU] Update GPUSwapChainDescriptor, GPUSwapChain and implement GPUCanvasContext |
| https://bugs.webkit.org/show_bug.cgi?id=194406 |
| <rdar://problem/47892466> |
| |
| Reviewed by Myles C. Maxfield. |
| |
| Name updates for Web GPU renaming in inspector. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.displayNameForContextType): |
| |
| 2019-03-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Editing Timelines shows two CPU Timelines |
| https://bugs.webkit.org/show_bug.cgi?id=195578 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.availableTimelineTypes): |
| The CPU Instrument is already in the default list. |
| |
| 2019-03-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOMDebugger: protocol error on first open |
| https://bugs.webkit.org/show_bug.cgi?id=195248 |
| <rdar://problem/48538465> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Don't try to call `DOMDebugger` commands until a target has been initialized. |
| Still attempt to resolve DOM breakpoints whenever the main resource/frame changes. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.prototype.initializeTarget): Added. |
| (WI.DOMDebuggerManager.supportsEventBreakpoints): |
| (WI.DOMDebuggerManager.prototype.get supported): |
| (WI.DOMDebuggerManager.prototype.addDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveDOMBreakpointsForURL): Added. |
| (WI.DOMDebuggerManager.prototype._resolveDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._saveDOMBreakpoints): |
| (WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): |
| (WI.DOMDebuggerManager.prototype._mainFrameDidChange): |
| (WI.DOMDebuggerManager.prototype._mainResourceDidChange): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Deleted. |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype._updateDOMBreakpoint.breakpointUpdated): Deleted. |
| (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Deleted. |
| (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): Deleted. |
| |
| * UserInterface/Base/Multimap.js: Added. |
| (Multimap): |
| (Multimap.prototype.get): |
| (Multimap.prototype.add): |
| (Multimap.prototype.delete): |
| (Multimap.prototype.clear): |
| (Multimap.prototype.keys): |
| (Multimap.prototype.*values): |
| (Multimap.prototype.*[Symbol.iterator]): |
| (Multimap.prototype.toJSON): |
| * .eslintrc: |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| Helper data structure for managing Maps of Sets (e.g. all DOM breakpoints for a URL). |
| |
| 2019-03-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Enable by default |
| https://bugs.webkit.org/show_bug.cgi?id=195471 |
| |
| Reviewed by Devin Rousso. |
| |
| Remove experimental setting and include the CPU timeline in the |
| default set of timelines. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.defaultTimelineTypes): |
| * UserInterface/Main.html: |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.selected): |
| (.timeline-overview-graph.cpu > .column-chart > svg > rect): Deleted. |
| (body[dir=rtl] .timeline-overview-graph.cpu > .column-chart): Deleted. |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph): |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| * UserInterface/Views/LegacyCPUTimelineView.css: Removed. |
| * UserInterface/Views/LegacyCPUTimelineView.js: Removed. |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2019-03-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Better Thread chart layout values |
| https://bugs.webkit.org/show_bug.cgi?id=195547 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.layout.bestThreadLayoutMax): |
| (WI.CPUTimelineView.prototype.layout.layoutView): |
| (WI.CPUTimelineView.prototype._showGraphOverlay): |
| Include a separate layoutMax for the combined view and a thread layoutMax |
| for the thread groups. |
| |
| 2019-03-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Add legend and graph hover effects |
| https://bugs.webkit.org/show_bug.cgi?id=195390 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New strings for the legends. |
| |
| * UserInterface/Main.html: |
| Combined files. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| Tweaked colors, including individual stroke and fill colors for each CPU section. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.total-usage): |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.main-thread-usage): |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.worker-thread-usage): |
| Updated colors. |
| |
| * UserInterface/Views/CPUUsageCombinedView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/CPUUsageStackedView.css. |
| (.cpu-usage-combined-view > .details > .legend-container): |
| (.cpu-usage-combined-view > .details > .legend-container > .row): |
| (.cpu-usage-combined-view > .details > .legend-container > .row + .row): |
| (.cpu-usage-combined-view > .details > .legend-container > .row > .swatch): |
| * UserInterface/Views/CPUUsageCombinedView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/CPUUsageStackedView.js. |
| (WI.CPUUsageCombinedView.appendLegendRow): |
| (WI.CPUUsageCombinedView): |
| (WI.CPUUsageCombinedView.prototype.get graphElement): |
| (WI.CPUUsageCombinedView.prototype.get chart): |
| (WI.CPUUsageCombinedView.prototype.get rangeChart): |
| (WI.CPUUsageCombinedView.prototype.clear): |
| (WI.CPUUsageCombinedView.prototype.updateChart): |
| (WI.CPUUsageCombinedView.prototype.updateMainThreadIndicator): |
| (WI.CPUUsageCombinedView.prototype.clearLegend): |
| (WI.CPUUsageCombinedView.prototype.updateLegend): |
| (WI.CPUUsageCombinedView.prototype._updateDetails): |
| * UserInterface/Views/CPUUsageIndicatorView.css: Removed. |
| * UserInterface/Views/CPUUsageIndicatorView.js: Removed. |
| Combined the Indicator and StackedAreaChart into a single view |
| that share a left details section. |
| |
| * UserInterface/Views/CPUUsageView.js: |
| (WI.CPUUsageView): |
| (WI.CPUUsageView.prototype.get graphElement): |
| (WI.CPUUsageView.prototype.clear): |
| (WI.CPUUsageView.prototype.updateChart): |
| (WI.CPUUsageView.prototype.clearLegend): |
| (WI.CPUUsageView.prototype.updateLegend): |
| (WI.CPUUsageView.prototype._updateDetails): |
| Include a legend in the left details section. |
| |
| * UserInterface/Views/AreaChart.js: |
| (WI.AreaChart): |
| (WI.AreaChart.prototype.addPointMarker): |
| (WI.AreaChart.prototype.clearPointMarkers): |
| (WI.AreaChart.prototype.clear): |
| (WI.AreaChart.prototype.layout): |
| * UserInterface/Views/StackedAreaChart.js: |
| (WI.StackedAreaChart): |
| (WI.StackedAreaChart.prototype.addPointMarker): |
| (WI.StackedAreaChart.prototype.clearPointMarkers): |
| (WI.StackedAreaChart.prototype.clear): |
| (WI.StackedAreaChart.prototype.layout): |
| Add point markers for the area charts. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.get cpuUsageViewHeight): |
| (WI.CPUTimelineView.prototype.clear): |
| (WI.CPUTimelineView.prototype.initialLayout.appendLegendRow): |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype._graphPositionForMouseEvent): |
| (WI.CPUTimelineView.prototype._handleMouseClick): |
| (WI.CPUTimelineView.prototype._handleGraphMouseMove): |
| (WI.CPUTimelineView.prototype._showGraphOverlayNearTo): |
| (WI.CPUTimelineView.prototype._updateGraphOverlay): |
| (WI.CPUTimelineView.prototype._showGraphOverlay.xScale): |
| (WI.CPUTimelineView.prototype._showGraphOverlay.yScale): |
| (WI.CPUTimelineView.prototype._showGraphOverlay.addOverlayPoint): |
| (WI.CPUTimelineView.prototype._showGraphOverlay): |
| (WI.CPUTimelineView.prototype._clearOverlayMarkers.clearGraphOverlayElement): |
| (WI.CPUTimelineView.prototype._clearOverlayMarkers): |
| (WI.CPUTimelineView.prototype._hideGraphOverlay): |
| Include graph overlay markers. |
| |
| 2019-03-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: eliminate manual syncing of numeric constants used by JavaScript and CSS |
| https://bugs.webkit.org/show_bug.cgi?id=194883 |
| <rdar://problem/48257785> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.static get recordingAutoCaptureInputMargin): Added. |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize): |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.navigation-bar > .item.canvas-recording-auto-capture > label > input): |
| |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.static get memoryCategoryViewHeight): Added. |
| (WI.MemoryTimelineView.prototype.initialLayout): Added. |
| (WI.MemoryTimelineView.prototype.layout): |
| * UserInterface/Views/MemoryCategoryView.css: |
| (.memory-category-view): |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.static get nodeWaterfallDOMEventSize): Added. |
| (WI.NetworkTableContentView.prototype.initialLayout): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.content-view.network .network-table): Deleted. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline._generateStyleRulesIfNeeded): |
| * UserInterface/Views/TreeOutline.css: |
| (.tree-outline, .tree-outline .children): |
| (.tree-outline .item): |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.supportsRecordingAutoCapture): |
| Drive-by: fix usage of InspectorBackend.domains.{CanvasAgent => Canvas} |
| |
| 2019-03-11 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r242622): Web Inspector: Fix asserts "Overridden property is missing overridingProperty" |
| https://bugs.webkit.org/show_bug.cgi?id=195515 |
| <rdar://problem/48737315> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| |
| 2019-03-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: overridden CSS property should have go-to button to jump to effective property |
| https://bugs.webkit.org/show_bug.cgi?id=185930 |
| <rdar://problem/40506252> |
| |
| Reviewed by Matt Baker. |
| |
| Introduce a new experimental jump to effective property button. The button is a small arrow button |
| next to an overridden CSS property. Clicking the button scrolls to the effective CSS property and |
| selects it. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty): |
| (WI.CSSProperty.prototype.update): |
| (WI.CSSProperty.prototype.get overridingProperty): |
| (WI.CSSProperty.prototype.set overridingProperty): |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._markOverriddenProperties): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property.overridden .select-effective-property): |
| (.spreadsheet-style-declaration-editor .property.overridden:hover .select-effective-property,): |
| (.spreadsheet-style-declaration-editor .property.overridden:hover .select-effective-property::after,): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertySelectByProperty): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorSelectProperty): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionSelectProperty): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| |
| 2019-03-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Protocol: add type checking when commands are called via invoke |
| https://bugs.webkit.org/show_bug.cgi?id=195310 |
| <rdar://problem/48588679> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackend.Command.prototype.invoke.deliverFailure): Added. |
| (InspectorBackend.Command.prototype.invoke): |
| (InspectorBackend.Command.prototype._invokeWithArguments): |
| |
| 2019-03-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r242118): WI.ScopeBar missing background |
| https://bugs.webkit.org/show_bug.cgi?id=195299 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rework the way `color`, `background-color`, and `border-color` are set for `WI.ScopeBar` to |
| use CSS variables instead. Divides the variables into three categories: |
| - default: these are the values that the `WI.ScopeBar` would use normally |
| - override: these are values that take precidence over the default (e.g. set by other elements) |
| - falls back to default when no value is set |
| - actual: this is the resulting value that will be used when displaying |
| - this way, other elements can "mirror" the styling of the `WI.ScopeBar` |
| |
| * UserInterface/Views/ScopeBar.css: |
| (.scope-bar): |
| (.scope-bar > li): |
| (.scope-bar > li::before): |
| (.scope-bar > li:matches(.selected, :hover)): |
| (.scope-bar > li:not(.selected):hover::after): |
| (.scope-bar > li.selected:active::after): |
| (.scope-bar > li.multiple > select): |
| (body[dir=ltr] .scope-bar > li.multiple > select): |
| (body[dir=rtl] .scope-bar > li.multiple > select): |
| (.scope-bar > li.multiple:not(.selected) > select): Added. |
| (.scope-bar > li.multiple > .arrows): |
| (.scope-bar > li::before): Deleted. |
| (.scope-bar.default-item-selected > li.multiple.selected::before): Deleted. |
| (.scope-bar > li:matches(.selected, :hover)::before): Deleted. |
| (.scope-bar > li.selected:active::before): Deleted. |
| (.scope-bar > li.multiple.selected > select): Deleted. |
| (body[dir=ltr] .scope-bar > li.multiple > .arrows): Deleted. |
| (body[dir=rtl] .scope-bar > li.multiple > .arrows): Deleted. |
| (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows): Deleted. |
| (.scope-bar > li:matches(.selected, :active)): Deleted. |
| (@media (prefers-color-scheme: dark)): Deleted. |
| Switch to using `::after` since `::before` is more commonly used. |
| |
| * UserInterface/Views/MultipleScopeBarItem.js: |
| (WI.MultipleScopeBarItem.prototype._handleMouseDown): |
| Drive-by: fix the <select> alignment by re-firing the "mousedown" event on it. |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.layout): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group > header > nav > .scope-bar > li): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li:not(:hover, .selected)): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li > img): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.pass > img): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.warn > img): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.fail > img): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.error > img): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported > img): Added. |
| (.content-view.audit-test-group > section > .audit-test-case:first-child, .content-view.audit-test-group > section > .audit-test-case.filtered ~ .audit-test-case:not(.filtered), .content-view.audit-test-group > section > .audit-test-group + .audit-test-case, .content-view.audit-test-group > section > .audit-test-case + .audit-test-group): Added. |
| (.content-view.audit-test-group > section > .audit-test-case:not(.filtered) ~ .audit-test-case:not(.filtered)): Added. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li::before): Deleted. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.pass::before): Deleted. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.warn::before): Deleted. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.fail::before): Deleted. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.error::before): Deleted. |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported::before): Deleted. |
| (.content-view.audit-test-group > section > .audit-test-case:first-child, .content-view.audit-test-group > section > .audit-test-group + .audit-test-case, .content-view.audit-test-group > section > .audit-test-case + .audit-test-group): Deleted. |
| Replace the `::before` image with an actual `<img>` now that the `WI.ScopeBar` itself uses |
| a pseudo-element for the background styling. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| * UserInterface/Views/LogContentView.css: |
| (.log-scope-bar > li:not(.unread) > .indicator): Added. |
| (.log-scope-bar > li.unread > .indicator): Added. |
| (.log-scope-bar > li.unread:hover > .indicator): Added. |
| (.log-scope-bar > li.unread.errors > .indicator): Added. |
| (.log-scope-bar > li.unread.warnings > .indicator): Added. |
| (.log-scope-bar > li.unread.logs > .indicator): Added. |
| (.log-scope-bar > li.unread::before): Deleted. |
| (body[dir=ltr] .log-scope-bar > li.unread::before): Deleted. |
| (body[dir=rtl] .log-scope-bar > li.unread::before): Deleted. |
| (.log-scope-bar > li.unread:hover::before): Deleted. |
| (.log-scope-bar > li.unread.errors::before): Deleted. |
| (.log-scope-bar > li.unread.warnings::before): Deleted. |
| (.log-scope-bar > li.unread.logs::before): Deleted. |
| Replace the `::before` unread indicator with an actual `<div>` now that the `WI.ScopeBar` |
| itself uses a pseudo-element for the background styling. |
| |
| * UserInterface/Views/TimelineRecordingContentView.css: |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple): Deleted. |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows): Deleted. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| Drive-by: fix typo. |
| |
| 2019-03-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS: there should be a way to inline-replace a variable with it's value |
| https://bugs.webkit.org/show_bug.cgi?id=195335 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/InlineSwatch.js: |
| (WI.InlineSwatch): |
| (WI.InlineSwatch.prototype.didDismissPopover): |
| (WI.InlineSwatch.prototype._swatchElementClicked): |
| (WI.InlineSwatch.prototype._swatchElementClicked.optionsForType): Added. |
| Shift-clicking a variable swatch replaces the text with the variable's value. |
| Drive-by: try to create a readonly swatch for the variable's value (e.g. a color indicator). |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| If the value of a variable swatch changes, re-render the value. |
| |
| * UserInterface/Views/CodeMirrorTextMarkers.js: |
| (createCodeMirrorTextMarkers): |
| (createCodeMirrorColorTextMarkers): |
| (createCodeMirrorGradientTextMarkers): |
| (createCodeMirrorBezierTextMarkers): |
| (createCodeMirrorSpringTextMarkers): |
| Refactor function parameters for more flexibility. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Elements: highlight the node when hovering event listeners sorted by node |
| https://bugs.webkit.org/show_bug.cgi?id=195368 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshEventListeners.generateGroupsByNode): |
| |
| 2019-03-06 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: system accent color follow-ups |
| https://bugs.webkit.org/show_bug.cgi?id=195190 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ButtonToolbarItem.css: |
| (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)): |
| (@media (prefers-color-scheme: dark)): |
| (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)): Deleted. |
| Drop pressed toolbar button style. It's extremely subtle and not worth the hassle. |
| |
| * UserInterface/Views/LogContentView.css: |
| (.console-messages:focus .console-item.selected::after): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/ScopeBar.css: |
| (.scope-bar > li.selected:active::before): |
| |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.selected > .segment): |
| |
| 2019-03-06 Matt Baker <mattbaker@apple.com> |
| |
| REGRESSION: Elements tab: Uncaught Exception: No node with given id found |
| https://bugs.webkit.org/show_bug.cgi?id=194299 |
| <rdar://problem/47828647> |
| |
| Reviewed by Devin Rousso. |
| |
| When removing the selection, TreeOutline subclasses should have more |
| control over which item becomes selected after the selection is removed. |
| DOMTreeOutline should track the items that are being removed, and prevent |
| them or their descendants from becoming selected. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline): |
| (WI.DOMTreeOutline.prototype.ondelete): |
| (WI.DOMTreeOutline.prototype.canSelectTreeElement): |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectionControllerLastSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableItem): |
| (WI.TreeOutline.prototype.canSelectTreeElement): |
| |
| 2019-03-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Allow clicking a bar in the overview to select a tight time range around it |
| https://bugs.webkit.org/show_bug.cgi?id=195321 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype.closestRecordTo): |
| Helper to get the closest record to a timestamp. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .stacked-column-chart): |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.selected): |
| Style a selected record with the active color. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph): |
| (WI.CPUTimelineOverviewGraph.prototype.get samplingRatePerSecond): |
| (WI.CPUTimelineOverviewGraph.prototype.reset): |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| (WI.CPUTimelineOverviewGraph.prototype.updateSelectedRecord): |
| (WI.CPUTimelineOverviewGraph.prototype._graphPositionForMouseEvent): |
| (WI.CPUTimelineOverviewGraph.prototype._handleGraphMouseClick): |
| A click in the overview which hits a rect triggers a selection of |
| the associated timeline record. |
| |
| * UserInterface/Views/StackedColumnChart.js: |
| (WI.StackedColumnChart.prototype.addColumnSet): |
| (WI.StackedColumnChart.prototype.layout): |
| Allow setting an additional class name with a column set. |
| It will set the class name on each rect in that column. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._recordSelected): |
| When selecting a CPU record, make a selection range of 2 neighboring |
| columns in each direction. |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WI.TimelineRuler.prototype._handleClick): |
| When a sub-element has handled the click stop further event propagation. |
| |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WI.TimelineOverviewGraph.prototype.get selected): |
| Drive-by style fix. |
| |
| 2019-03-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: TimelineOverview clicks do not always behave as expected |
| https://bugs.webkit.org/show_bug.cgi?id=195319 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WI.TimelineRuler.prototype._shouldIgnoreMicroMovement): |
| (WI.TimelineRuler.prototype._handleMouseDown): |
| (WI.TimelineRuler.prototype._handleMouseMove): |
| Ignore moves that haven't gone more than 4px. Once the threshold is |
| passed allow all moves. This improves the click behavior since |
| previously click would never re-dispatch if there was any movement. |
| |
| 2019-03-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Statistics and Sources sections |
| https://bugs.webkit.org/show_bug.cgi?id=195202 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New strings. |
| |
| * UserInterface/Base/Utilities.js: |
| (Map.prototype.getOrInitialize): |
| Helper to get and if not found initialize with a value. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > th): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.number): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table > tr > td.label): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .show-more): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .filter:hover): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active): |
| (.timeline-view.cpu > .content > .overview > .chart > .container.stats > table .active + .active): |
| (@media (prefers-color-scheme: dark)): |
| Colors for the statistics sections. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.reset): |
| (WI.CPUTimelineView.prototype.clear): |
| (WI.CPUTimelineView.prototype._clearStatistics): |
| (WI.CPUTimelineView.prototype._clearSources): |
| Updates for additional sections. |
| Include a cache of the statisiticsData so we can relayout parts of the UI and |
| avoid an entire UI update. |
| |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype._layoutBreakdownChart): |
| (WI.CPUTimelineView.prototype._layoutStatisticsAndSources): |
| (WI.CPUTimelineView.prototype._layoutStatisticsSection.createEllipsisElement): |
| (WI.CPUTimelineView.prototype._layoutStatisticsSection): |
| (WI.CPUTimelineView.prototype._layoutSourcesSection.firstNonNativeCallFrame): |
| (WI.CPUTimelineView.prototype._layoutSourcesSection.keyForSourceCodeLocation): |
| (WI.CPUTimelineView.prototype._layoutSourcesSection.labelForLocation): |
| (WI.CPUTimelineView.prototype._layoutSourcesSection.createEllipsisElement): |
| (WI.CPUTimelineView.prototype._layoutSourcesSection): |
| Extract layouts into helper methods to avoid an enormous layout method. |
| |
| (WI.CPUTimelineView.prototype._computeSamplingData.incrementTypeCount): |
| (WI.CPUTimelineView.prototype._computeSamplingData): |
| Compute additional data when going through script events. |
| |
| (WI.CPUTimelineView.prototype._resetSourcesFilters): |
| (WI.CPUTimelineView.prototype._addSourcesFilter): |
| (WI.CPUTimelineView.prototype._removeSourcesFilter): |
| (WI.CPUTimelineView.prototype._updateSourcesFilters): |
| Helpers for updating the source filters. |
| |
| (WI.CPUTimelineView.prototype._createTableRow): |
| (WI.CPUTimelineView.prototype._insertTableRow): |
| Helpers for creating rows in the statistics / sources tables. |
| |
| 2019-03-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Simplify chart <rect>s with x/y attributes instead of transform(x, y) |
| https://bugs.webkit.org/show_bug.cgi?id=195352 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ColumnChart.js: |
| (WI.ColumnChart.prototype.layout): |
| (WI.ColumnChart): |
| * UserInterface/Views/RangeChart.js: |
| (WI.RangeChart.prototype.layout): |
| (WI.RangeChart): |
| * UserInterface/Views/StackedColumnChart.js: |
| (WI.StackedColumnChart.prototype.layout): |
| (WI.StackedColumnChart): |
| |
| 2019-03-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS Changes: only show changes for the given node |
| https://bugs.webkit.org/show_bug.cgi?id=194608 |
| <rdar://problem/48050206> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| (WI.ChangesDetailsSidebarPanel.prototype.inspect): |
| (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode): |
| (WI.ChangesDetailsSidebarPanel.prototype.layout): |
| Make this panel a subclass of `WI.DOMDetailsSidebarPanel` so it has access to the selected |
| DOM node in the Elements tab. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| Create new general setting for controlling this change. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: color swatches aren't shown for valid inputs with leading/trailing whitespace |
| https://bugs.webkit.org/show_bug.cgi?id=195298 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._generateDOM): |
| (WI.RecordingActionTreeElement._createSwatchForColorParameters): |
| Trim the color string since it can be an arbitrary string, seeing as it is captured before |
| the <canvas> has a chance to parse/fix it. |
| |
| 2019-03-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: recordsInTimeRange sometimes does not get the expected record when includeRecordBeforeStart |
| https://bugs.webkit.org/show_bug.cgi?id=195317 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype.recordsOverlappingTimeRange): |
| |
| 2019-03-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: remove event listeners once a recording is ready |
| https://bugs.webkit.org/show_bug.cgi?id=195324 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording): |
| (WI.Recording.prototype.async swizzle): |
| (WI.Recording.prototype.async _process): |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement): |
| (WI.RecordingActionTreeElement.prototype._handleValidityChanged): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.set recording): |
| (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype.initialLayout): |
| (WI.RecordingContentView.prototype._handleRecordingProcessedAction): |
| |
| 2019-03-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Attempting to select records in the bottom 16px of the timeline overview graph fails |
| https://bugs.webkit.org/show_bug.cgi?id=195318 |
| |
| Reviewed by Devin Rousso. |
| |
| The bottom few pixels of the overview are reserved for the scroll-container |
| which may show a scrollbar if the overview needs to scroll. When the scrollbars |
| are not visible we can allow pointer events to click through the invisible |
| scroll-container and allow record selection. |
| |
| * UserInterface/Views/TimelineOverview.css: |
| (.timeline-overview:not(.has-scrollbar) > .scroll-container): |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._handleScrollEvent): |
| (WI.TimelineOverview.prototype._handleWheelEvent): |
| (WI.TimelineOverview._handleGestureStart): |
| |
| 2019-03-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: iPod user agent UIString should have a lowercase "T" |
| https://bugs.webkit.org/show_bug.cgi?id=195312 |
| <rdar://problem/48586853> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| |
| 2019-03-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Adjust sizes in timeline overview |
| https://bugs.webkit.org/show_bug.cgi?id=195313 |
| |
| Reviewed by Devin Rousso. |
| |
| Reduce the height slightly to save some precious vertical space. |
| Also increase the size of the minimum bar height so that it doesn't |
| look like there are no events when there is low CPU. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,): |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph.prototype.get height): |
| Reduce the CPU overview graph height to 60px. |
| |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| Increase the minimum size of a column bar to 4px. |
| |
| 2019-03-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Reload actions from second level inspector should properly reload the inspected inspector |
| https://bugs.webkit.org/show_bug.cgi?id=195306 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| Provide a better reload for a Nth level inspector. |
| |
| * UserInterface/Debug/Bootstrap.js: |
| (WI.runBootstrapOperations): |
| Simplify, should not need to check for InspectorFrontendHost. |
| |
| 2019-03-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: MediaSource logging not initialized properly |
| https://bugs.webkit.org/show_bug.cgi?id=195307 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/ConsoleManager.js: |
| (WI.ConsoleManager.prototype.initializeLogChannels): |
| Typo caused undefined to be included and trigger assertions. |
| |
| 2019-03-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSS: class input isn't fully centered |
| https://bugs.webkit.org/show_bug.cgi?id=195297 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): |
| (body[dir=ltr] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted. |
| (body[dir=rtl] .sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input): Deleted. |
| |
| 2019-03-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: show the version number in the UI |
| https://bugs.webkit.org/show_bug.cgi?id=195292 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): |
| (WI.AuditNavigationSidebarPanel.prototype._updateNoAuditsPlaceholder): |
| Fix the logic for showing a placeholder when editing or with only disabled tests. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.audit > .content > .message-text-view): Added. |
| (.audit-version): Added. |
| Don't obstruct the "Edit" button when showing a placeholder. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-03-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ITMLKit Inspector: Data Bindings / Associated Data for nodes |
| https://bugs.webkit.org/show_bug.cgi?id=195290 |
| <rdar://problem/48304019> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New title and empty message strings. |
| |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.css: |
| (.sidebar > .panel.dom-node-details .details-section.dom-node-associated-data > .content .row): |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| (WI.DOMNodeDetailsSidebarPanel.prototype.initialLayout): |
| (WI.DOMNodeDetailsSidebarPanel.prototype.layout): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshDataBindings): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._refreshAssociatedData): |
| (WI.DOMNodeDetailsSidebarPanel.prototype._attributesChanged): |
| New Node sections only enabled for ITMLKit `WI.sharedApp.hasExtraDomains`. |
| |
| * UserInterface/Views/ObjectTreeView.js: |
| (WI.ObjectTreeView): |
| Provide a way, like TreeElement/View to access the ObjectTreeView from an element. |
| |
| 2019-03-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: protocol error on first open |
| https://bugs.webkit.org/show_bug.cgi?id=195059 |
| <rdar://problem/48407871> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.initializeTarget): |
| (WI.CanvasManager.prototype.static supportsRecordingAutoCapture): |
| (WI.CanvasManager.prototype.setRecordingAutoCaptureFrameCount): |
| If targets aren't available, wait until they are and then set the auto-capture frame count. |
| |
| 2019-03-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Toggling Timeline "Stop when page loads" to on should stop (immediately or soon) any active recording if already past the load event |
| https://bugs.webkit.org/show_bug.cgi?id=195239 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged): |
| |
| 2019-03-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Unexpectedly frequent flashing of DOM node attributes |
| https://bugs.webkit.org/show_bug.cgi?id=148049 |
| <rdar://problem/22296830> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Save a timestamp of when the CSS animation began, so that if the attribute's node is replaced, |
| we can "resume" the CSS animation at the same point with the attribute's new node. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement): |
| (WI.DOMTreeElement.prototype.attributeDidChange): |
| (WI.DOMTreeElement.prototype._buildAttributeDOM): |
| (WI.DOMTreeElement.prototype._createModifiedAnimation): |
| (WI.DOMTreeElement.prototype._markNodeChanged): Deleted. |
| (WI.DOMTreeElement.prototype._nodeChangedAnimationEnd): Deleted. |
| (WI.DOMTreeElement.prototype._fireDidChange): Deleted. |
| |
| 2019-03-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: DOM, URL, and Event breakpoints don't grey out when all breakpoints are disabled |
| https://bugs.webkit.org/show_bug.cgi?id=195170 |
| <rdar://problem/48478193> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement): |
| (WI.DOMBreakpointTreeElement.prototype.onattach): |
| (WI.DOMBreakpointTreeElement.prototype.ondetach): |
| (WI.DOMBreakpointTreeElement.prototype._updateStatus): |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| (WI.EventBreakpointTreeElement.prototype.onattach): |
| (WI.EventBreakpointTreeElement.prototype.ondetach): |
| (WI.EventBreakpointTreeElement.prototype._updateStatus): |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| (WI.URLBreakpointTreeElement): |
| (WI.URLBreakpointTreeElement.prototype.onattach): |
| (WI.URLBreakpointTreeElement.prototype.ondetach): |
| (WI.URLBreakpointTreeElement.prototype._updateStatus): |
| Remove the `"resolved"` class when the global "breakpoints enabled" state is changed. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.prototype._handleDOMBreakpointDisabledStateChanged): Added. |
| (WI.DOMDebuggerManager.prototype._handleEventBreakpointDisabledStateChanged): Added. |
| (WI.DOMDebuggerManager.prototype._handleURLBreakpointDisabledStateChanged): Added. |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Deleted. |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint.breakpointUpdated): Deleted. |
| * UserInterface/Models/DOMBreakpoint.js: |
| (WI.DOMBreakpoint): |
| (WI.DOMBreakpoint.deserialize): Added. |
| (WI.DOMBreakpoint.prototype.set disabled): |
| (WI.DOMBreakpoint.prototype.set domNodeIdentifier): |
| * UserInterface/Models/EventBreakpoint.js: |
| (WI.EventBreakpoint.deserialize): Added. |
| (WI.EventBreakpoint.prototype.set disabled): |
| (WI.EventBreakpoint.fromPayload): Deleted. |
| * UserInterface/Models/URLBreakpoint.js: |
| (WI.URLBreakpoint.deserialize): Added. |
| (WI.URLBreakpoint.prototype.set disabled): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype._handleDOMBreakpointDisabledStateChanged): Added. |
| (WI.DOMTreeContentView.prototype._handleDOMBreakpointDOMNodeChanged): Added. |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointResolvedStateChanged): Added. |
| Drive-by: rename all events with the name `*DidChange` to `*Changed`. |
| Drive-by: create static `deserialize` helper functions. |
| |
| 2019-03-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Sources: breakpoints should be disabled when an audit is running |
| https://bugs.webkit.org/show_bug.cgi?id=195105 |
| <rdar://problem/48441373> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.prototype.closed): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateTemporarilyDisabledBreakpointsButtons): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._updateBreakpointsDisabledBanner): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestScheduled): Added. |
| (WI.SourcesNavigationSidebarPanel.prototype._handleAuditManagerTestCompleted): Added. |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.sources > .content > .warning-banner + .warning-banner): Added. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| |
| 2019-03-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Debugger: don't enable breakpoints when source location changes |
| https://bugs.webkit.org/show_bug.cgi?id=195081 |
| <rdar://problem/48422701> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._breakpointDisplayLocationDidChange): |
| (WI.DebuggerManager.prototype._breakpointEditablePropertyDidChange): |
| |
| 2019-03-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage - Energy Impact Section |
| https://bugs.webkit.org/show_bug.cgi?id=195151 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| New strings and resources. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content .subtitle > .info): |
| (@media (prefers-color-scheme: dark)): |
| (.energy-info-popover-content): |
| (.timeline-view.cpu > .content > .overview > .divider): |
| (body[dir=ltr] .timeline-view.cpu > .content > .overview > .divider): |
| (body[dir=rtl] .timeline-view.cpu > .content > .overview > .divider): |
| (.timeline-view.cpu :matches(.area-chart, .stacked-area-chart) svg > path): |
| (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.low): |
| (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.medium): |
| (.timeline-view.cpu .gauge-chart:not(.empty) > svg > path.high): |
| (.timeline-view.cpu .gauge-chart:not(.empty) > svg > polygon.needle): |
| (.timeline-view.cpu .energy): |
| (.timeline-view.cpu .energy .energy-impact): |
| (.timeline-view.cpu .energy .energy-impact.low): |
| (.timeline-view.cpu .energy .energy-impact.medium): |
| (.timeline-view.cpu .energy .energy-impact.high): |
| (.timeline-view.cpu .energy .energy-impact-number): |
| Styling the chart and text for the different energy impact levels. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.get lowEnergyValue): |
| (WI.CPUTimelineView.prototype.get highEnergyValue): |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype._layoutEnergyChart.mapWithBias): |
| (WI.CPUTimelineView.prototype._layoutEnergyChart.valuesForGauge): |
| (WI.CPUTimelineView.prototype._layoutEnergyChart): |
| (WI.CPUTimelineView.prototype._clearEnergyImpactText): |
| New gauge chart and associated popover. |
| We do a bit of biasing of the data for each of the sections |
| in the gauge chart. Each section biases toward the cap of the |
| section so that: |
| - we encourage lower power usage (sub 3%) |
| - the gauge needle quickly moves past the low value of a range |
| |
| * UserInterface/Views/GaugeChart.css: Added. |
| (.gauge-chart): |
| (body[dir=rtl] .gauge-chart): |
| (.gauge-chart > svg > path,): |
| (.gauge-chart > svg > polygon.needle): |
| (.gauge-chart.empty > svg > polygon.needle): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/GaugeChart.js: Added. |
| (WI.GaugeChart.prototype.get size): |
| (WI.GaugeChart.prototype.get segments): |
| (WI.GaugeChart.prototype.get value): |
| (WI.GaugeChart.prototype.set value): |
| (WI.GaugeChart.prototype.clear): |
| (WI.GaugeChart.prototype.initialLayout): |
| (WI.GaugeChart.prototype.layout): |
| (WI.GaugeChart.prototype._validateSegments): |
| (WI.GaugeChart.prototype._createSegmentPathData): |
| GaugeChart with variable number of sections and a |
| current value needle. It has a bit of customization |
| when drawing the arc at the start of each segment. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| New CPU colors for the different energy impact levels. |
| |
| 2019-03-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Data grid border colors don't match accent colors |
| https://bugs.webkit.org/show_bug.cgi?id=195232 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DataGrid.css: |
| (.data-grid:focus tr.selected td:not(:last-child)): |
| (body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)): |
| (body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)): |
| |
| 2019-02-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: don't show the auto-stop UI when not inspecting a page |
| https://bugs.webkit.org/show_bug.cgi?id=195192 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype.get navigationItems): |
| |
| 2019-02-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage: Worker thread that dies might stay at a high value forever |
| https://bugs.webkit.org/show_bug.cgi?id=195148 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (CPUTimelineView.prototype.layout): |
| Handle workers dieing or at least zeroing out between records. |
| |
| 2019-02-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Make Threads section expandable / collapsable |
| https://bugs.webkit.org/show_bug.cgi?id=195085 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Setting.js: |
| New setting to save the Threads expanded/collapsed state. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content > .details > .subtitle): |
| (.timeline-view.cpu > .content > .details > details > .subtitle.threads): |
| (.timeline-view.cpu > .content > .details > .subtitle): Deleted. |
| (.timeline-view.cpu > .content > .details > .subtitle.threads): Deleted. |
| Ensure subtitle styles apply now that one of the subtitles is inside |
| of a <details> / <summary> element. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.initialLayout): |
| Make the Threads group a <details> / <summary> expandable / collapsed element. |
| |
| * UserInterface/Views/Main.css: |
| (summary): |
| (summary::-webkit-details-marker): |
| Default styles for <summary>. |
| |
| 2019-02-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: View.removeSubview not removing the element properly when not parented |
| https://bugs.webkit.org/show_bug.cgi?id=195146 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype.removeSubview): |
| Since the element may not be a direct child, just use Element.prototype.remove. |
| |
| 2019-02-28 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Debugger: disabled breakpoint color is too dark |
| https://bugs.webkit.org/show_bug.cgi?id=195103 |
| <rdar://problem/48440678> |
| |
| Reviewed by Devin Rousso. |
| |
| Increase the disabled breakpoint contrast, as well as the contrast between |
| disabled and auto-continue breakpoints. Disabled breakpoints stand out by |
| being somewhat brighter and less saturated. Using the same strategy for |
| auto-continue breakpoints is too subtle to provide sufficient contrast. |
| |
| We can adopt the technique used by Xcode, and overlay a white triangle |
| marker on the breakpoint arrow to indicate an auto-continue breakpoint. |
| |
| * UserInterface/Views/BreakpointTreeElement.css: |
| (.item.breakpoint .status > .status-image): |
| (.item.breakpoint.selected .status > .status-image.resolved): |
| Add white outline to make selected breakpoint button stand out. |
| (.item.breakpoint .status > .status-image.auto-continue::after): |
| (.item.breakpoint .status > .status-image.disabled): |
| (.item.breakpoint .status > .status-image.auto-continue): Deleted. |
| |
| |
| * UserInterface/Views/DOMTreeContentView.css: |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled,): Deleted. |
| |
| * UserInterface/Views/TextEditor.css: |
| (.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before): |
| (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.execution-line.primary) .CodeMirror-linenumber::after): |
| (.text-editor > .CodeMirror .breakpoint-disabled .CodeMirror-linenumber::before): |
| (.text-editor > .CodeMirror .breakpoint-auto-continue:not(.breakpoint-disabled) .CodeMirror-linenumber::before): Deleted. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Add breakpoint color variables to use across all breakpoint controls. |
| Use system colors if available, otherwise fall back to hard-coded values |
| based on sampling the default (blue) accent color on Mojave. |
| |
| 2019-02-28 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Control-Space should force completion |
| https://bugs.webkit.org/show_bug.cgi?id=194796 |
| <rdar://problem/48180822> |
| |
| Reviewed by Matt Baker. |
| |
| Pressing Control-Space when editing CSS property should show completion popover, |
| even if the value is empty. |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions.prototype.startsWith): |
| Performance optimization: exit early when `prefix` is empty. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider): |
| (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField): |
| (WI.SpreadsheetTextField.prototype._handleKeyDown): |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| |
| 2019-02-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: enabling auto-capture if the frame count is empty triggers an assertion |
| https://bugs.webkit.org/show_bug.cgi?id=195060 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): |
| (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureCheckedDidChange): |
| |
| 2019-02-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Revert -webkit-border-end changes that are unreliable |
| https://bugs.webkit.org/show_bug.cgi?id=195149 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CPUUsageIndicatorView.css: |
| (.cpu-usage-indicator-view > .details): |
| (body[dir=ltr] .cpu-usage-indicator-view > .details): |
| (body[dir=rtl] .cpu-usage-indicator-view > .details): |
| * UserInterface/Views/CPUUsageStackedView.css: |
| (.cpu-usage-stacked-view > .details): |
| (body[dir=ltr] .cpu-usage-stacked-view > .details): |
| (body[dir=rtl] .cpu-usage-stacked-view > .details): |
| * UserInterface/Views/CPUUsageView.css: |
| (.cpu-usage-view > .details): |
| (body[dir=ltr] .cpu-usage-view > .details): |
| (body[dir=rtl] .cpu-usage-view > .details): |
| * UserInterface/Views/MemoryCategoryView.css: |
| (.memory-category-view > .details): |
| (body[dir=ltr] .memory-category-view > .details): |
| (body[dir=rtl] .memory-category-view > .details): |
| |
| 2019-02-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Cleanup some Chart code |
| https://bugs.webkit.org/show_bug.cgi?id=195147 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/RangeChart.js: |
| (WI.RangeChart.prototype.layout): |
| (WI.RangeChart): |
| * UserInterface/Views/StackedColumnChart.js: |
| (WI.StackedColumnChart.prototype.layout): |
| (WI.StackedColumnChart): |
| |
| 2019-02-27 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add a new Scanner TimelineMarker to show up when mousing over TimelineView graphs |
| https://bugs.webkit.org/show_bug.cgi?id=195079 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Utilities.js: |
| (Note.prototype.enclosingNodeOrSelfWithClassInArray): |
| Helper for a set of classes. |
| |
| * UserInterface/Models/TimelineMarker.js: |
| Add a new marker type, "Scanner". |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype._graphPositionForMouseEvent): |
| (WI.CPUTimelineView.prototype._handleGraphMouseMove): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView): |
| (WI.MemoryTimelineView.prototype._graphPositionForMouseEvent): |
| (WI.MemoryTimelineView.prototype._handleGraphMouseMove): |
| Update a scanner time when mousing over various graphs that span the entire time range. |
| These use the containing graph element because there was a single pixel between |
| adjacent graphs which would cause the scanner to flicker because the mouse event target |
| was not an svg element. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype.hidden): |
| (WI.TimelineOverview.prototype.updateScannerTime): |
| (WI.TimelineOverview.prototype.clearScanner): |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerTimeDidChange): |
| (WI.TimelineRecordingContentView.prototype._handleTimelineViewScannerDidClear): |
| Update the overview's ruler with scanner changes. |
| |
| * UserInterface/Views/TimelineRuler.css: |
| (.timeline-ruler > .markers > .marker.scanner): |
| * UserInterface/Views/TimelineRuler.js: |
| (WI.TimelineRuler): |
| (WI.TimelineRuler.prototype.clearMarkers): |
| (WI.TimelineRuler.prototype.updateScannerTime): |
| (WI.TimelineRuler.prototype.clearScanner): |
| (WI.TimelineRuler.prototype._updateMarkers): |
| Have a special scanner marker that updates. |
| |
| * UserInterface/Views/TimelineView.js: |
| New events that a TimelineView can dispatch to update the overview. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-color-scheme: dark)): |
| Scanner marker colors. |
| |
| 2019-02-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Use Element.closest for internal code |
| https://bugs.webkit.org/show_bug.cgi?id=173747 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Replace usage of added utility functions on the `Node` prototype with the built-in |
| `Element.prototype.closest` as it's more flexible and is capable of doing the same thing. |
| |
| * UserInterface/Base/Utilities.js: |
| (Node.prototype.enclosingNodeOrSelfWithClass): Deleted. |
| (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Deleted. |
| (Node.prototype.enclosingNodeOrSelfWithNodeName): Deleted. |
| * UserInterface/Base/Main.js: |
| (WI.handlePossibleLinkClick): |
| (WI._focusedContentBrowser): |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype._graphPositionForMouseEvent): |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView.prototype.set selectedIndex): |
| (WI.CompletionSuggestionsView.prototype.update): |
| (WI.CompletionSuggestionsView.prototype._itemClicked): |
| * UserInterface/Views/ConsoleGroup.js: |
| (WI.ConsoleGroup.prototype._titleClicked): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype._mouseWasClicked): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._startEditingTarget): |
| (WI.DOMTreeElement.prototype._populateTagContextMenu): |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.populateContextMenu): |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype._startEditing): |
| (WI.DataGrid.prototype._editingCancelled): |
| (WI.DataGrid.prototype.dataGridNodeFromNode): |
| (WI.DataGrid.prototype.dataGridNodeFromPoint): |
| (WI.DataGrid.prototype._headerCellClicked): |
| (WI.DataGrid.prototype._mouseoverColumnCollapser): |
| (WI.DataGrid.prototype._mouseoutColumnCollapser): |
| (WI.DataGrid.prototype._clickInColumnCollapser): |
| (WI.DataGrid.prototype._contextMenuInHeader): |
| (WI.DataGrid.prototype._contextMenuInDataTable): |
| * UserInterface/Views/DataGridNode.js: |
| (WI.DataGridNode.prototype.isEventWithinDisclosureTriangle): |
| * UserInterface/Views/LegacyTabBar.js: |
| (WI.LegacyTabBar.prototype._handleMouseDown): |
| (WI.LegacyTabBar.prototype._handleClick): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._handleContextMenuEvent): |
| (WI.LogContentView.prototype._mousedown): |
| (WI.LogContentView.prototype._targetInMessageCanBeSelected): |
| (WI.LogContentView.prototype._mousemove): |
| (WI.LogContentView.prototype._mouseup): |
| (WI.LogContentView.prototype._ondragstart): |
| * UserInterface/Views/NavigationBar.js: |
| (WI.NavigationBar.prototype._mouseDown): |
| (WI.NavigationBar.prototype._mouseMoved): |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype.handleEvent): |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar.prototype._handleMouseDown): |
| (WI.TabBar.prototype._handleClick): |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype._handleMouseDown): |
| (WI.Table.prototype._handleContextMenu): |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.treeElementFromNode): |
| |
| 2019-02-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r242118): Debugger: event breakpoints have no icon |
| https://bugs.webkit.org/show_bug.cgi?id=195119 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| |
| 2019-02-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Dark Mode: unreadable text in bezier curve editor numeric input fields |
| https://bugs.webkit.org/show_bug.cgi?id=195018 |
| <rdar://problem/48378541> |
| |
| Reviewed by Matt Baker. |
| |
| Simplify some styles using `-webkit-*` properties instead of `[dir=ltr]`/`[dir=rtl]` selectors. |
| |
| * UserInterface/Views/BezierEditor.css: |
| (.bezier-editor): |
| (.bezier-editor > .bezier-preview): |
| (.bezier-editor > .bezier-preview-timing): |
| (.bezier-editor > .bezier-container .linear-curve): |
| (.bezier-editor > .bezier-container .bezier-curve): |
| (.bezier-editor > .bezier-container .control-line): |
| (.bezier-editor > .bezier-container .control-handle): |
| (.bezier-editor > .number-input-container): |
| (.bezier-editor > .number-input-container > input): |
| (body[dir=ltr] .bezier-editor > .bezier-preview-timing): Deleted. |
| (body[dir=rtl] .bezier-editor > .bezier-preview-timing): Deleted. |
| (body[dir=ltr] .bezier-editor > .number-input-container > input): Deleted. |
| (body[dir=rtl] .bezier-editor > .number-input-container > input): Deleted. |
| (@media (prefers-color-scheme: dark)): Deleted. |
| Remove all custom styling on any <input>s, as they look fine with their default styling. |
| |
| * UserInterface/Views/SpringEditor.css: |
| (.spring-editor > .spring-preview): |
| (.spring-editor > .spring-preview > div): |
| (.spring-editor > .spring-timing > div): |
| |
| 2019-02-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: popover colors don't change when transitioning to/from dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=195113 |
| <rdar://problem/48444188> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype.dismiss): |
| (WI.Popover.prototype._addListenersIfNeeded): |
| |
| 2019-02-26 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Use system accent color throughout UI |
| https://bugs.webkit.org/show_bug.cgi?id=193507 |
| <rdar://problem/47327971> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Images/Breakpoint.png: Removed. |
| * UserInterface/Images/Breakpoint.svg: Added. |
| * UserInterface/Images/Breakpoint@2x.png: Removed. |
| * UserInterface/Images/BreakpointInactive.png: Removed. |
| * UserInterface/Images/BreakpointInactive@2x.png: Removed. |
| Replace breakpoint pixel art with an SVG image that can be styled in CSS. |
| |
| * UserInterface/Images/CSSVariable.svg: |
| * UserInterface/Images/CubicBezier.svg: |
| * UserInterface/Images/UserInputPrompt.svg: |
| Remove fill color since it is now styled in CSS. |
| |
| * UserInterface/Views/BezierEditor.css: |
| (.bezier-editor > .bezier-preview > div): |
| (@media (prefers-color-scheme: dark)): |
| (.bezier-editor > .bezier-container .control-handle): |
| (.bezier-editor > .bezier-container .control-line): |
| Use system accent color for control handles. |
| |
| * UserInterface/Views/BreakpointTreeElement.css: |
| (.item.breakpoint .status > .status-image): |
| (.item.breakpoint .status > .status-image.resolved): |
| Use system accent color for breakpoint fill, with a dark outline |
| to match Xcode and make the button stand out against the selection. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement.prototype._updateStatus): |
| |
| * UserInterface/Views/ButtonNavigationItem.css: |
| (.navigation-bar .item.button > .glyph): |
| |
| * UserInterface/Views/ConsolePrompt.js: |
| (WI.ConsolePrompt): |
| |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| * UserInterface/Views/DOMTreeContentView.css: |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled,): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.subtree): |
| (.content-view.dom-tree .tree-outline.dom li .status-image.breakpoint.disabled): Deleted. |
| (.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint): Deleted. |
| (.content-view.dom-tree .tree-outline.dom.breakpoints-disabled li .status-image.breakpoint.disabled): Deleted. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom li.selected .selection-area): |
| (.tree-outline.dom li.elements-drag-over .selection-area): |
| (.tree-outline.dom:focus li:matches(.selected, .hovered) .selection-area): |
| (.tree-outline.dom li.hovered:not(.selected) .selection-area): |
| (.tree-outline.dom li.pseudo-class-enabled > .selection-area::before): |
| Use the system accent color for the "pseudo-class enabled" marker. |
| (@media (prefers-color-scheme: dark)): |
| (.tree-outline.dom:focus li.selected .selection-area): Deleted. |
| Use --selected-background-color for selection and hover styles, which is |
| set to the system highlight color if available. |
| |
| * UserInterface/Views/InlineSwatch.css: |
| (.inline-swatch:matches(.bezier, .spring, .variable)): |
| (.inline-swatch:matches(.bezier, .spring)): Deleted. |
| (.inline-swatch.variable): Deleted. |
| |
| * UserInterface/Views/InlineSwatch.js: |
| (WI.InlineSwatch): |
| |
| * UserInterface/Views/NetworkDetailView.css: |
| (.network .network-detail .navigation-bar .item.radio.button.text-only:before): |
| (.network .network-detail .navigation-bar .item.radio.button.text-only.selected): |
| (@media (prefers-color-scheme: dark)): |
| (.network-detail .item.close > .glyph): |
| |
| * UserInterface/Views/QuickConsole.css: |
| (.quick-console > .console-prompt > .glyph): |
| (.quick-console > .console-prompt::before): Deleted. |
| |
| * UserInterface/Views/RadioButtonNavigationItem.css: |
| (.navigation-bar .item.radio.button.text-only): |
| (.navigation-bar .item.radio.button.text-only::before): |
| (.navigation-bar .item.radio.button.text-only:matches(.selected, :hover)): |
| (.navigation-bar .item.radio.button.text-only:matches(.selected, :hover)::before): |
| (.navigation-bar .item.radio.button.text-only:not(.selected):hover::before): |
| (.navigation-bar .item.radio.button.text-only.selected:active::before): |
| (.navigation-bar .item.radio.button.text-only:hover): Deleted. |
| (.navigation-bar .item.radio.button.text-only.selected): Deleted. |
| (.navigation-bar .item.radio.button.text-only:active): Deleted. |
| (.navigation-bar .item.radio.button.text-only.selected:active): Deleted. |
| Use system accent color for selection and hover styles. Since it isn't |
| yet possible to derive new colors from the accent color in CSS, fake it |
| with a ::before pseudo-element that can have have `filter` or `opacity` |
| effects applied to it without altering the button text color. |
| |
| * UserInterface/Views/RenderingFrameTimelineOverviewGraph.css: |
| (.timeline-overview-graph.rendering-frame > .frame-marker): |
| Use system accent color for selected frame marker. |
| |
| * UserInterface/Views/ScopeBar.css: |
| (.scope-bar > li): |
| (.scope-bar > li::before): |
| (.scope-bar.default-item-selected > li.multiple.selected::before): |
| (.scope-bar > li:matches(.selected, :hover)): |
| (.scope-bar > li:matches(.selected, :hover)::before): |
| (.scope-bar > li:not(.selected):hover::before): |
| (.scope-bar > li.selected:active::before): |
| (.scope-bar > li:hover): Deleted. |
| (.scope-bar > li.selected): Deleted. |
| (.scope-bar > li:active): Deleted. |
| (.scope-bar > li.selected:active): Deleted. |
| |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings .navigation-bar .item.radio.button.text-only:before): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/TextEditor.css: |
| (.text-editor > .CodeMirror .has-breakpoint .CodeMirror-linenumber::before): |
| (.text-editor > .CodeMirror .breakpoint-resolved .CodeMirror-linenumber::before): |
| (.text-editor > .CodeMirror .has-breakpoint.multiple-breakpoints .CodeMirror-linenumber::before): |
| (@keyframes text-editor-highlight-fadeout): |
| (@keyframes text-editor-hovered-expression-highlight-fadeout): |
| Replace breakpoint pixel art with a solid color (the system accent |
| color) clipped to the shape of a breakpoint. |
| |
| * UserInterface/Views/TimelineRecordFrame.css: |
| (.timeline-record-frame.selected): |
| |
| * UserInterface/Views/URLBreakpointTreeElement.js: |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (body.window-inactive): |
| (@media (prefers-color-scheme: dark)): |
| (body.mac-platform:not(.sierra, .high-sierra)): |
| Add custom property overrides for system colors where supported. |
| |
| 2019-02-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Search: no results when opening to Search tab |
| https://bugs.webkit.org/show_bug.cgi?id=195058 |
| <rdar://problem/48407699> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| If targets aren't available, wait until they are and then perform the search. |
| |
| * UserInterface/Base/Main.js: |
| (WI.targetsAvailable): Added. |
| Expose getter for indicating whether targets are available. |
| |
| 2019-02-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Main Thread Indicator |
| https://bugs.webkit.org/show_bug.cgi?id=194972 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Utilities.js: |
| (value): |
| The existing enclosingNode doesn't work for SVG because its names |
| are lowercase. Add a simplified version for the svg case. |
| |
| * UserInterface/Views/RangeChart.js: Added. |
| (WI.RangeChart): |
| (WI.RangeChart.prototype.get size): |
| (WI.RangeChart.prototype.set size): |
| (WI.RangeChart.prototype.addRange): |
| (WI.RangeChart.prototype.clear): |
| (WI.RangeChart.prototype.layout): |
| A new chart that draws rects for given ranges. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype.recordsOverlappingTimeRange): |
| Helper to specifically get records touching a range. Useful |
| for when we have a single pixel spanning (startTime -> endTime) |
| and we want to find records in that pixel. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart rect): |
| (.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-script): |
| (.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-style): |
| (.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-layout): |
| (.timeline-view.cpu .cpu-usage-indicator-view > .graph > .range-chart .sample-type-paint): |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.get indicatorViewHeight): |
| (WI.CPUTimelineView.prototype.clear): |
| (WI.CPUTimelineView.prototype.get scrollableElements): |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype._graphPositionForMouseEvent): |
| (WI.CPUTimelineView.prototype._handleIndicatorClick): |
| (WI.CPUTimelineView.prototype._attemptSelectIndicatatorTimelineRecord): |
| (WI.CPUTimelineView.prototype._selectTimelineRecord): |
| Place the Main Thread Indicator view beneath the big graph. |
| Clicking inside it selects records in the Timeline Overview. |
| |
| * UserInterface/Views/CPUUsageIndicatorView.css: Added. |
| (.cpu-usage-indicator-view): |
| (.cpu-usage-indicator-view > .details): |
| (body[dir=ltr] .cpu-usage-indicator-view > .details): |
| (body[dir=rtl] .cpu-usage-indicator-view > .details): |
| (body[dir=rtl] .cpu-usage-indicator-view > .graph): |
| (.cpu-usage-indicator-view > .graph): |
| (.cpu-usage-indicator-view > .graph,): |
| * UserInterface/Views/CPUUsageIndicatorView.js: Added. |
| (WI.CPUUsageIndicatorView): |
| (WI.CPUUsageIndicatorView.prototype.get chart): |
| (WI.CPUUsageIndicatorView.prototype.clear): |
| (WI.CPUUsageIndicatorView.prototype.updateChart): |
| Converts the CPU samples data into a RangeChart. It works to coalesce |
| many samples of the same type into a single range to reduce total ranges. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype._recordSelected): |
| (WI.TimelineRecordingContentView.prototype._recordWasSelected): |
| (WI.TimelineRecordingContentView.prototype._selectRecordInTimelineOverview): |
| (WI.TimelineRecordingContentView.prototype._selectRecordInTimelineView): |
| * UserInterface/Views/TimelineView.js: |
| Add a path for a TimelineView to dispatch a record selected event and cause |
| have the TimelineRecordingContentView react to it by updating the timeline |
| overview and relevent timeline view. |
| |
| 2019-02-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: navigation sidebar says "No Search Results" when a slow search is in progress |
| https://bugs.webkit.org/show_bug.cgi?id=170631 |
| <rdar://problem/29473874> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Keep a count of all the backend commands (increment when firing, decrement when a result is |
| sent back to the frontend). Once the count comes back to `0`, attempt to show the "No Results" |
| placeholder, since we will have finished searching at that point. Since commands can be called |
| as a result of other commands, using `Promise.all` isn't possible. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| (WI.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholderSoon): Deleted. |
| (WI.SearchSidebarPanel.prototype.performSearch.updateEmptyContentPlaceholder): Deleted. |
| Drive-by: replace `bind` calls with arrow functions, and use for-of loops. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: if no auto-capture value is specified, don't force the input to have "0" as the value |
| https://bugs.webkit.org/show_bug.cgi?id=194950 |
| <rdar://problem/48276798> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Create a getter/setter for the value of the auto-capture frame count <input> so that all |
| code follows the same path. |
| |
| If the <input> currently has no content and the frame count is 0, only set the placeholder. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): |
| (WI.CanvasOverviewContentView.prototype.get _recordingAutoCaptureFrameCountInputElementValue): Added. |
| (WI.CanvasOverviewContentView.prototype.set _recordingAutoCaptureFrameCountInputElementValue): Added. |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize): |
| (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged): |
| |
| 2019-02-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Console: dragging a selection outside the selected element clears the selection |
| https://bugs.webkit.org/show_bug.cgi?id=194660 |
| <rdar://problem/46719239> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._mousemove): |
| Don't clear the selection if the target of the "mousemove" is outside of the view. |
| |
| (WI.LogContentView.prototype._updateMessagesSelection): |
| Drive-by: clear the saved selected messages when we're just selecting a single message. |
| |
| 2019-02-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Rename LineChart to AreaChart |
| https://bugs.webkit.org/show_bug.cgi?id=195038 |
| |
| Rubber-stamped by Matt Baker. |
| |
| * UserInterface/Main.html: |
| New file names. |
| |
| * UserInterface/Views/AreaChart.js: Renamed from Source/WebInspectorUI/UserInterface/Views/LineChart.js. |
| * UserInterface/Views/StackedAreaChart.js: Renamed from Source/WebInspectorUI/UserInterface/Views/StackedLineChart.js. |
| Renamed. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| * UserInterface/Views/CPUUsageStackedView.css: |
| * UserInterface/Views/CPUUsageStackedView.js: |
| * UserInterface/Views/CPUUsageView.css: |
| * UserInterface/Views/CPUUsageView.js: |
| * UserInterface/Views/LegacyCPUTimelineView.css: |
| * UserInterface/Views/MemoryCategoryView.css: |
| * UserInterface/Views/MemoryCategoryView.js: |
| * UserInterface/Views/MemoryTimelineOverviewGraph.css: |
| Update references. |
| |
| 2019-02-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: hovering a node inside an object preview should highlight it |
| https://bugs.webkit.org/show_bug.cgi?id=194862 |
| <rdar://problem/48246433> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/FormattedValue.js: |
| (WI.FormattedValue.createElementForNodePreview): |
| When provided a way to access the `WI.RemoteObject` for the given preview, add various mouse |
| event listeners that highlight the corresponding DOM node. |
| |
| * UserInterface/Views/ObjectPreviewView.js: |
| (WI.ObjectPreviewView): |
| (WI.ObjectPreviewView.prototype._initTitleElement): |
| (WI.ObjectPreviewView.prototype._appendPropertyPreviews): |
| (WI.ObjectPreviewView.prototype._appendValuePreview): |
| Implement various ways of getting the `WI.RemoteObject` for a given preview. |
| - When the preview is for the actual `WI.RemoteObject`, simply return it |
| - If the preview is a property of the main object, get the `WI.RemoteObject` for that property |
| |
| * UserInterface/Views/ObjectTreeView.js: |
| (WI.ObjectTreeView): |
| * UserInterface/Views/ObjectTreePropertyTreeElement.js: |
| (WI.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle): |
| Pass the `WI.RemoteObject` to the preview so that it can utilize it. |
| |
| * UserInterface/Controllers/ConsoleManager.js: |
| (WI.ConsoleManager): |
| (WI.ConsoleManager.prototype.releaseRemoteObjectWithConsoleClear): Added. |
| (WI.ConsoleManager.prototype.messagesCleared): Added. |
| |
| 2019-02-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline - Thread Breakdown |
| https://bugs.webkit.org/show_bug.cgi?id=194788 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| New strings and files. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| New colors for cpu threads / activity breakdown. |
| |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord.prototype.get workers): |
| (WI.CPUTimelineRecord): |
| Distinguish the workers in a CPU timeline record. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph): |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect): |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.main-thread-usage): |
| (.timeline-overview-graph.cpu > .stacked-column-chart > svg > rect.worker-thread-usage): |
| (.timeline-overview-graph.cpu > .column-chart > svg > rect): |
| Stacked column chart for CPU in the overview graph. |
| |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu > .content > .overview): |
| (.timeline-view.cpu > .content > .details > .subtitle.threads): |
| (.timeline-view.cpu > .content > .overview > .chart): |
| (.timeline-view.cpu > .content > .overview > .chart > .subtitle): |
| (.timeline-view.cpu > .content > .overview > .chart > .container): |
| (.timeline-view.cpu > .content > .overview .samples,): |
| (.timeline-view.cpu .legend): |
| (.timeline-view.cpu .legend .row): |
| (.timeline-view.cpu .legend .row + .row): |
| (.timeline-view.cpu .legend .swatch): |
| (.timeline-view.cpu .legend > .row > .swatch.sample-type-idle): |
| (.timeline-view.cpu .legend > .row > .swatch.sample-type-script): |
| (.timeline-view.cpu .legend > .row > .swatch.sample-type-style): |
| (.timeline-view.cpu .legend > .row > .swatch.sample-type-layout): |
| (.timeline-view.cpu .legend > .row > .swatch.sample-type-paint): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-idle): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-script): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-style): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-layout): |
| (.timeline-view.cpu .circle-chart > svg > path.segment.sample-type-paint): |
| (.timeline-view.cpu svg > path): |
| (.timeline-view.cpu .main-thread svg > path,): |
| (.timeline-view.cpu .worker-thread svg > path,): |
| (.timeline-view.cpu .cpu-usage-view.empty): |
| (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers): |
| (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers > div): |
| (.timeline-view.cpu :matches(.line-chart, .stacked-line-chart) .markers > div > .label): |
| (.timeline-view.cpu > .content): Deleted. |
| (.cpu-usage-view .line-chart > svg > path): Deleted. |
| (.timeline-view.cpu .legend > .row > .swatch.current): Deleted. |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.displayNameForSampleType): |
| (WI.CPUTimelineView.prototype.shown): |
| (WI.CPUTimelineView.prototype.clear.clearUsageView): |
| (WI.CPUTimelineView.prototype.clear): |
| (WI.CPUTimelineView.prototype.initialLayout.createChartContainer): |
| (WI.CPUTimelineView.prototype.initialLayout.appendLegendRow): |
| (WI.CPUTimelineView.prototype.initialLayout): |
| (WI.CPUTimelineView.prototype.layout.removeGreaterThan): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype.layout.layoutView): |
| (WI.CPUTimelineView.prototype.layout.yScale): |
| (WI.CPUTimelineView.prototype._computeSamplingData.markRecordEntries): |
| (WI.CPUTimelineView.prototype._computeSamplingData): |
| (WI.CPUTimelineView.prototype._removeWorkerThreadViews): |
| (WI.CPUTimelineView.prototype._clearBreakdownLegend): |
| (WI.CPUTimelineView.prototype.layout.xScale): Deleted. |
| Line charts and Circle Chart for threads and breakdowns. |
| |
| * UserInterface/Views/CPUUsageStackedView.css: |
| (.cpu-usage-stacked-view): |
| (.cpu-usage-stacked-view > .details): |
| (body[dir=ltr] .cpu-usage-stacked-view > .details): |
| (body[dir=rtl] .cpu-usage-stacked-view > .details): |
| (.cpu-usage-stacked-view > .details > .name): |
| (body[dir=rtl] .cpu-usage-stacked-view > .graph): |
| (.cpu-usage-stacked-view > .graph): |
| (.cpu-usage-stacked-view > .graph,): |
| * UserInterface/Views/CPUUsageStackedView.js: |
| (WI.CPUUsageStackedView): |
| (WI.CPUUsageStackedView.prototype.get chart): |
| (WI.CPUUsageStackedView.prototype.clear): |
| (WI.CPUUsageStackedView.prototype.updateChart): |
| (WI.CPUUsageStackedView.prototype._updateDetails): |
| Same as CPUUsageView except Stacked for the total. |
| |
| * UserInterface/Views/CPUUsageView.css: |
| (.cpu-usage-view): |
| (.cpu-usage-view > .details): |
| (.cpu-usage-view > .details > .name): |
| (.cpu-usage-view > .graph): |
| * UserInterface/Views/CPUUsageView.js: |
| (WI.CPUUsageView): |
| (WI.CPUUsageView.prototype.get chart): |
| (WI.CPUUsageView.prototype.clear): |
| (WI.CPUUsageView.prototype.updateChart): |
| (WI.CPUUsageView.prototype._updateDetails): |
| Slight modifications for the new UI. |
| |
| * UserInterface/Views/LegacyCPUTimelineView.css: |
| (.timeline-view.legacy-cpu .cpu-usage-view .line-chart > svg > path): |
| * UserInterface/Views/LegacyCPUTimelineView.js: |
| (WI.LegacyCPUTimelineView.prototype.layout): |
| Update API calls in the legacy view for minor changes. |
| |
| * UserInterface/Views/MemoryCategoryView.css: |
| (.memory-category-view > .details): |
| (.memory-category-view > .details > .name): |
| * UserInterface/Views/MemoryTimelineOverviewGraph.js: |
| (WI.MemoryTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/MemoryTimelineView.css: |
| (body .timeline-view.memory): |
| (.timeline-view.memory): Deleted. |
| Improvements ported from the CPU timeline views. |
| |
| * UserInterface/Views/StackedColumnChart.js: Added. |
| (WI.StackedColumnChart): |
| (WI.StackedColumnChart.prototype.get size): |
| (WI.StackedColumnChart.prototype.set size): |
| (WI.StackedColumnChart.prototype.initializeSections): |
| (WI.StackedColumnChart.prototype.addColumnSet): |
| (WI.StackedColumnChart.prototype.clear): |
| (WI.StackedColumnChart.prototype.layout): |
| A stacked column chart implementation. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype.removeUnparentedSubview): |
| Add a way to remove a subview that had its `element` moved |
| someplace other than a direct child of our element. |
| |
| 2019-02-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Dark Mode: Network Overview Graph segments have distracting white box shadow |
| https://bugs.webkit.org/show_bug.cgi?id=194966 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Variables.css: |
| (@media (prefers-color-scheme: dark)): |
| Make global timeline even/odd colors where odd is the default content background |
| color and even is slightly different. These were used in multiple places. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .legend): |
| (.timeline-overview-graph.cpu:nth-child(even) > .legend): |
| (@media (prefers-color-scheme: dark)): Deleted. |
| * UserInterface/Views/MemoryTimelineOverviewGraph.css: |
| (.timeline-overview-graph.memory > .legend): |
| (.timeline-overview-graph.memory:nth-child(even) > .legend): |
| (@media (prefers-color-scheme: dark)): Deleted. |
| * UserInterface/Views/NetworkTimelineOverviewGraph.css: |
| (.timeline-overview-graph.network > .graph-row > .timeline-record-bar > .segment:not(.inactive)): |
| (.timeline-overview-graph.network:nth-child(even) > .graph-row > .timeline-record-bar > .segment:not(.inactive)): |
| Use the variable colors now and eliminate dark mode blocks. |
| |
| 2019-02-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Command-/ should toggle edited property |
| https://bugs.webkit.org/show_bug.cgi?id=194967 |
| <rdar://problem/48329852> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.commentOut): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertySelect): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.update): |
| (WI.SpreadsheetStyleProperty.prototype._toggle): |
| (WI.SpreadsheetStyleProperty.prototype._select): |
| |
| 2019-02-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r242018): Timelines shows no results |
| https://bugs.webkit.org/show_bug.cgi?id=195017 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| `simpleGlobStringToRegExp` can return `null` if the provided search query is an empty string. |
| |
| * UserInterface/Base/SearchUtilities.js: |
| (WI.SearchUtilities.prototype.regExpForString): |
| Add assertions that the provided search query is a valid non-empty string. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype._updateFilter): |
| If the search query is empty, don't attempt to create a `RegExp` for it. |
| |
| 2019-02-25 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION: TreeElement or Table row selected using the keyboard should always be revealed |
| https://bugs.webkit.org/show_bug.cgi?id=194918 |
| <rdar://problem/48289314> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.selectionControllerSelectionDidChange): |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._treeKeyDown): |
| |
| 2019-02-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: [META] Merge Resources and Debugger into a single Sources tab |
| https://bugs.webkit.org/show_bug.cgi?id=183420 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourcesNavigationSidebarPanel.js: Added. |
| (WI.SourcesNavigationSidebarPanel): |
| (WI.SourcesNavigationSidebarPanel.shouldPlaceResourcesAtTopLevel): |
| (WI.SourcesNavigationSidebarPanel.prototype.get minimumWidth): |
| (WI.SourcesNavigationSidebarPanel.prototype.closed): |
| (WI.SourcesNavigationSidebarPanel.prototype.showDefaultContentView): |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor): |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject.getParent): |
| (WI.SourcesNavigationSidebarPanel.prototype.treeElementForRepresentedObject): |
| (WI.SourcesNavigationSidebarPanel.prototype.resetFilter): |
| (WI.SourcesNavigationSidebarPanel.prototype.hasCustomFilters): |
| (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): |
| (WI.SourcesNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): |
| (WI.SourcesNavigationSidebarPanel.prototype.willDismissPopover): |
| (WI.SourcesNavigationSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateMainFrameTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addTarget): |
| (WI.SourcesNavigationSidebarPanel.prototype._findCallStackTargetTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateCallStackTreeOutline): |
| (WI.SourcesNavigationSidebarPanel.prototype._addResource): |
| (WI.SourcesNavigationSidebarPanel.prototype._addResourcesRecursivelyForFrame): |
| (WI.SourcesNavigationSidebarPanel.prototype._addScript): |
| (WI.SourcesNavigationSidebarPanel.prototype._addWorkerTargetWithMainResource): |
| (WI.SourcesNavigationSidebarPanel.prototype._addDebuggerTreeElementForSourceCode): |
| (WI.SourcesNavigationSidebarPanel.prototype._insertDebuggerTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._compareBreakpointTreeElements): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._removeBreakpoint): |
| (WI.SourcesNavigationSidebarPanel.prototype._removeAllBreakpoints): |
| (WI.SourcesNavigationSidebarPanel.prototype._toggleAllBreakpoints): |
| (WI.SourcesNavigationSidebarPanel.prototype._breakpointsBeneathTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addIssue): |
| (WI.SourcesNavigationSidebarPanel.prototype._removeDebuggerTreeElement): |
| (WI.SourcesNavigationSidebarPanel.prototype._addBreakpointsForSourceCode): |
| (WI.SourcesNavigationSidebarPanel.prototype._addIssuesForSourceCode): |
| (WI.SourcesNavigationSidebarPanel.prototype._updateBreakpointsDisabledBanner): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReason): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonGotoArrow): |
| (WI.SourcesNavigationSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceTypeScopeBarSelectionChanged): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTreeSelectionDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCreateBreakpointClicked): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleFrameMainResourceDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleResourceAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleMainFrameDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerBreakpointsEnabledDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerScriptsCleared): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerPaused): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerResumed): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerCallFramesDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerActiveCallFrameDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerWaitingToPause): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleDOMBreakpointResolvedStateDidChange): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleConsoleIssueAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleConsoleCleared): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingWillStart): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTimelineCapturingStopped): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleCSSStyleSheetAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTargetAdded): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleTargetRemoved): |
| (WI.SourcesNavigationSidebarPanel.prototype._handleExtraDomainsActivated): |
| * UserInterface/Views/SourcesNavigationSidebarPanel.css: Added. |
| (.sidebar > .panel.navigation.sources > .content): |
| (.sidebar > .panel.navigation.sources > .navigation-bar): |
| (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-breakpoints): |
| (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-breakpoints.activated): |
| (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-pause-resume): |
| (.sidebar > .panel.navigation.sources > .navigation-bar .debugger-pause-resume.activated): |
| (.sidebar > .panel.navigation.sources > .content > .warning-banner): |
| (.sidebar > .panel.navigation.sources > .content > .details-section): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.paused-reason.collapsed > .header > .options,): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.collapsed > .content): |
| (.sidebar > .panel.navigation.sources > .content > .details-section.scripts:not(.collapsed)): |
| (.sidebar > .panel.navigation.sources > .content > .navigation-bar): |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread): |
| (.sidebar > .panel.navigation.sources > .content > .tree-outline.single-thread > .item.thread): |
| (@media (prefers-dark-interface) .sidebar > > .content > .panel.navigation.sources .warning-banner): |
| |
| * UserInterface/Views/SourcesTabContentView.js: Added. |
| (WI.SourcesTabContentView): |
| (WI.SourcesTabContentView.tabInfo): |
| (WI.SourcesTabContentView.isTabAllowed): |
| (WI.SourcesTabContentView.prototype.get type): |
| (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser): |
| (WI.SourcesTabContentView.prototype.canShowRepresentedObject): |
| (WI.SourcesTabContentView.prototype.showDetailsSidebarPanels): |
| (WI.SourcesTabContentView.prototype.showScopeChainDetailsSidebarPanel): |
| (WI.SourcesTabContentView.prototype.revealAndSelectBreakpoint): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.createContentTreeOutline): |
| (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): |
| (WI.NavigationSidebarPanel.prototype._checkOutlinesForPendingViewStateCookie): |
| Rework `createContentTreeOutline` to allow for additional symbols. |
| Add another symbol to ensure that the `WI.TreeOutline` is not used for cookie restoration. |
| |
| * UserInterface/Protocol/InspectorFrontendAPI.js: |
| (InspectorFrontendAPI.showResources): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForURL): |
| * UserInterface/Views/DefaultDashboardView.js: |
| (WI.DefaultDashboardView.prototype._resourcesItemWasClicked): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu): |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject): |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI.showSourcesTab): Added. |
| (WI.isShowingSourcesTab): Added. |
| (WI.tabContentViewClassForRepresentedObject): |
| (WI._debuggerDidPause): |
| |
| * UserInterface/Views/DebuggerTabContentView.js: |
| (WI.DebuggerTabContentView.isTabAllowed): |
| * UserInterface/Views/ResourcesTabContentView.js: |
| (WI.ResourcesTabContentView.isTabAllowed): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Images/Sources.svg: Added. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Change the InspectorOverlay to use native rather than canvas |
| https://bugs.webkit.org/show_bug.cgi?id=105023 |
| <rdar://problem/13443692> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| (WI.initializeTarget): |
| |
| * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-10.0.json: |
| * Versions/Inspector-iOS-10.3.json: |
| * Versions/Inspector-iOS-11.0.json: |
| * Versions/Inspector-iOS-11.3.json: |
| * Versions/Inspector-iOS-12.0.json: |
| * Versions/Inspector-iOS-12.2.json: |
| * Versions/Inspector-iOS-8.0.json: |
| * Versions/Inspector-iOS-9.0.json: |
| * Versions/Inspector-iOS-9.3.json: |
| Remove `Debugger.setOverlayMessage` command as it hasn't been used and is no longer supported. |
| |
| 2019-02-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to make searches case sensitive or use a regular expression |
| https://bugs.webkit.org/show_bug.cgi?id=192527 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/SearchUtilities.js: Added. |
| (WI.SearchUtilities.get defaultSettings): |
| (WI.SearchUtilities.createSettings): |
| (WI.SearchUtilities.regExpForString): |
| (WI.SearchUtilities.createSettingsButton): |
| (WI.SearchUtilities.createSettingsButton.toggleActive): |
| * UserInterface/Views/Main.css: |
| (.search-settings): Added. |
| (.search-settings > .glyph): Added. |
| (.search-settings:active > .glyph): Added. |
| (.search-settings.active > .glyph): Added. |
| (.search-settings:active.active > .glyph): Added. |
| Create static utility class for handling settings related to searching/filtering. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| Create default search settings that apply across WebInspector, unless a more specific |
| setting has been created that overrides it (e.g. the navigation sidebar or Search tab). |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel): |
| (WI.SearchSidebarPanel.prototype.performSearch.forEachMatch): |
| (WI.SearchSidebarPanel.prototype.performSearch.resourceCallback): |
| (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback): |
| (WI.SearchSidebarPanel.prototype.performSearch.searchScripts.scriptCallback): |
| (WI.SearchSidebarPanel.prototype.performSearch.searchScripts): |
| (WI.SearchSidebarPanel.prototype.performSearch.domSearchResults): |
| (WI.SearchSidebarPanel.prototype.performSearch.domCallback): |
| (WI.SearchSidebarPanel.prototype.performSearch): |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (.sidebar > .panel.navigation.search > .search-bar): |
| (.sidebar > .panel.navigation.search > .search-bar > input[type="search"]): |
| Add a (*) settings "gear" after each `<input type="search">` that shows a contextmenu with |
| checkboxes for each search setting. Any settings changed for each input take precedence over |
| the default settings, but will match the corresponding default setting if it's changed. |
| |
| * UserInterface/Views/SearchResultTreeElement.js: |
| (WI.SearchResultTreeElement.truncateAndHighlightTitle): |
| Use the length of the found text, rather than the length of the query. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._highlightSearchResults): |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype._updateFilter): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype.performSearch): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._urlFilterDidChange): |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView.prototype._perfomSearchOnKeyValuePairs): |
| * UserInterface/Views/ResourceSecurityContentView.js: |
| (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.customPerformSearch.searchResultCallback): |
| (WI.SourceCodeTextEditor.prototype.customPerformSearch): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.performSearch): |
| Use the default search settings when searching/filtering. |
| |
| * UserInterface/Views/SearchBar.css: |
| (.search-bar > input[type="search"]:placeholder-shown::-webkit-search-cancel-button): Added. |
| Drive-by: prevent the (x) from appearing when no text has been entered. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| |
| 2019-02-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: make debounce Proxy into its own class |
| https://bugs.webkit.org/show_bug.cgi?id=194721 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The `debounce`/`throttle` functions leveraged a `Proxy` to intercept the function call and |
| replace it with a "delayed" version. The issue with this is that it set the identifier for |
| the timer on the function itself, which is shared across all instances of a given class. |
| When different instances call the same delayed function, they'd clobber eachother's attempts |
| to delay work. |
| |
| * UserInterface/Base/Debouncer.js: Added. |
| (Debouncer): |
| (Debouncer.prototype.force): |
| (Debouncer.prototype.delayForTime): |
| (Debouncer.prototype.delayForFrame): |
| (Debouncer.prototype.delayForMicrotask): |
| (Debouncer.prototype.cancel): |
| (Debouncer.prototype._execute): |
| * UserInterface/Base/Throttler.js: Added. |
| (Throttler): |
| (Throttler.prototype.force): |
| (Throttler.prototype.fire): |
| (Throttler.prototype.cancel): |
| (Throttler.prototype._execute): |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Views/BezierEditor.js: |
| (WI.BezierEditor): |
| * UserInterface/Views/ContentBrowser.js: |
| (WI.ContentBrowser): |
| (WI.ContentBrowser.prototype._contentViewSelectionPathComponentDidChange): |
| (WI.ContentBrowser.prototype._contentViewSupplementalRepresentedObjectsDidChange): |
| (WI.ContentBrowser.prototype._currentContentViewDidChange): |
| (WI.ContentBrowser.prototype._dispatchCurrentRepresentedObjectsDidChangeEvent): Deleted. |
| * UserInterface/Views/DOMTreeUpdater.js: |
| (WI.DOMTreeUpdater): |
| (WI.DOMTreeUpdater.prototype._nodeAttributeModified): |
| (WI.DOMTreeUpdater.prototype._nodeInserted): |
| (WI.DOMTreeUpdater.prototype._nodeRemoved): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel): |
| (WI.NavigationSidebarPanel.prototype.closed): |
| (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype.updateFilter): |
| (WI.NavigationSidebarPanel.prototype.shown): |
| (WI.NavigationSidebarPanel.prototype._updateContentOverflowShadowVisibility): |
| (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): |
| (WI.NavigationSidebarPanel.prototype._treeElementDisclosureDidChange): |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.hidden): |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WI.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection): |
| (WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners): |
| (WI.ResourceDetailsSidebarPanel): |
| * UserInterface/Views/ShaderProgramContentView.js: |
| (WI.ShaderProgramContentView): |
| * UserInterface/Views/SpringEditor.js: |
| (WI.SpringEditor.prototype._resetPreviewAnimation): |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.set hidden): |
| (WI.TreeElement.prototype.didChange): |
| (WI.TreeElement.prototype._attach): |
| (WI.TreeElement.prototype._detach): |
| (WI.TreeElement.prototype.collapse): |
| (WI.TreeElement.prototype.expand): |
| (WI.TreeElement.prototype.reveal): |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.registerScrollVirtualizer): |
| (WI.TreeOutline.prototype.get updateVirtualizedElementsDebouncer): Added. |
| (WI.TreeOutline.prototype._updateVirtualizedElements): Added. |
| (WI.TreeOutline.prototype.updateVirtualizedElements.walk): Deleted. |
| (WI.TreeOutline.prototype.updateVirtualizedElements): Deleted. |
| * UserInterface/Views/WebSocketContentView.js: |
| (WI.WebSocketContentView): |
| (WI.WebSocketContentView.prototype.shown): |
| (WI.WebSocketContentView.prototype._updateFramesSoon): |
| (WI.WebSocketContentView.prototype._updateFrames): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * .eslintrc: |
| |
| 2019-02-24 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Unreviewed, fix indentation. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.markModified): |
| |
| 2019-02-23 Keith Miller <keith_miller@apple.com> |
| |
| Add new mac target numbers |
| https://bugs.webkit.org/show_bug.cgi?id=194955 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2019-02-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: add UI for preventing auto-stop |
| https://bugs.webkit.org/show_bug.cgi?id=194956 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add a checkbox to the navigation area of the Timelines tab that controls whether recordings |
| automatically stop (e.g. after "load" or a period of inactivity). |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype.get navigationItems): |
| (WI.TimelineRecordingContentView.prototype._handleAutoStopCheckboxCheckedDidChange): Added. |
| (WI.TimelineRecordingContentView.prototype._handleTimelinesAutoStopSettingChanged): Added. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype.capturingStopped): |
| (WI.TimelineManager.prototype._stopAutoRecordingSoon): |
| (WI.TimelineManager.prototype._resetAutoRecordingMaxTimeTimeout): |
| (WI.TimelineManager.prototype._resetAutoRecordingDeadTimeTimeout): |
| (WI.TimelineManager.prototype._handleTimelinesAutoStopSettingChanged): |
| |
| * UserInterface/Base/Setting.js: |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-22 Devin Rousso <drousso@apple.com> |
| |
| REGRESSION(r?): Web Inspector: Popovers have inset shadows |
| https://bugs.webkit.org/show_bug.cgi?id=192963 |
| <rdar://problem/46888679> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype._drawBackground): |
| (WI.Popover.prototype._drawBackground.isolate): Added. |
| * UserInterface/Views/Popover.css: |
| (.popover): |
| |
| 2019-02-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles Redesign: clicking CSS property or selector should always select its text |
| https://bugs.webkit.org/show_bug.cgi?id=180791 |
| <rdar://problem/36038366> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/SpreadsheetSelectorField.js: |
| (WI.SpreadsheetSelectorField): |
| (WI.SpreadsheetSelectorField.prototype.startEditing): |
| (WI.SpreadsheetSelectorField.prototype.stopEditing): |
| (WI.SpreadsheetSelectorField.prototype._handleMouseDown): Added. |
| (WI.SpreadsheetSelectorField.prototype._handleMouseUp): Added. |
| (WI.SpreadsheetSelectorField.prototype._handleFocus): Deleted. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration .selector.editing:focus, .spreadsheet-css-declaration .selector > .matched): Added. |
| (.spreadsheet-css-declaration .selector.spreadsheet-selector-field): |
| (.spreadsheet-css-declaration .selector:focus, .spreadsheet-css-declaration .selector > .matched): Deleted. |
| |
| 2019-02-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: DOM Content Loaded blue marker is too dark |
| https://bugs.webkit.org/show_bug.cgi?id=194970 |
| <rdar://problem/48330126> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TimelineRuler.css: |
| (@media (prefers-color-scheme: dark)): |
| (.timeline-ruler > .markers > .marker.dom-content-event): |
| Make the marker lighter for the dark mode. |
| |
| 2019-02-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unused Timeline record selection code path |
| https://bugs.webkit.org/show_bug.cgi?id=194931 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype.userSelectedRecord): Deleted. |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView): |
| (WI.TimelineRecordingContentView.prototype.timelineOverviewUserSelectedRecord): Deleted. |
| * UserInterface/Views/TimelineView.js: |
| (WI.TimelineView.prototype.userSelectedRecordFromOverview): Deleted. |
| |
| 2019-02-21 Darin Adler <darin@apple.com> |
| |
| Some refinements for Node and Document |
| https://bugs.webkit.org/show_bug.cgi?id=194764 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * UserInterface/Models/NativeFunctionParameters.js: Removed getOverrideStyle |
| because this deprecated non-working function is no longer something web authors |
| should be thinking about or typing. |
| |
| 2019-02-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: recordings with a single frame sometimes missing TreeElement |
| https://bugs.webkit.org/show_bug.cgi?id=194687 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| Wait until the entire `Recording` has been processed before setting the selected action. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content): |
| Drive-by: ensure that the recording `TreeOutline` container element has the full height to |
| take advantage of for virtualization. |
| |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: |
| (WI.RecordingStateDetailsSidebarPanel.prototype.set recording): |
| Drive-by: clear the `DataGrid` list when changing recordings since we removed all subviews. |
| |
| 2019-02-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM Debugger: node-specific event breakpoints aren't cleared/recalculated on navigation |
| https://bugs.webkit.org/show_bug.cgi?id=194874 |
| <rdar://problem/48253415> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype._setDocument): |
| (WI.DOMManager.prototype.removeBreakpointForEventListener): |
| |
| 2019-02-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: macOS user agent option should be available in device settings menu |
| https://bugs.webkit.org/show_bug.cgi?id=194885 |
| <rdar://problem/48259253> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| |
| 2019-02-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: RTL: Scripts Timeline loading indicator has incorrect margins |
| https://bugs.webkit.org/show_bug.cgi?id=194882 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TimelineRecordingContentView.css: |
| (.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner): |
| |
| 2019-02-20 Andy Estes <aestes@apple.com> |
| |
| [Xcode] Add SDKVariant.xcconfig to various Xcode projects |
| https://bugs.webkit.org/show_bug.cgi?id=194869 |
| |
| Rubber-stamped by Jer Noble. |
| |
| * WebInspectorUI.xcodeproj/project.pbxproj: |
| |
| 2019-02-19 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 Mark Lam. |
| |
| * 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 treat 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. |
| |
| 2019-02-19 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r241784. |
| |
| Broke all OpenSource builds. |
| |
| Reverted changeset: |
| |
| "Web Inspector: Improve ES6 Class instances in Heap Snapshot |
| instances view" |
| https://bugs.webkit.org/show_bug.cgi?id=172848 |
| https://trac.webkit.org/changeset/241784 |
| |
| 2019-02-19 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 Mark Lam. |
| |
| * 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 treat 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. |
| |
| 2019-02-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Scripts timeline on-going-recording text looks poor in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=194809 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TimelineRecordingContentView.css: |
| (.content-view.timeline-recording > .content-browser .recording-progress > .status): |
| |
| 2019-02-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Provide a way to avoid a recording auto-stop on reload |
| https://bugs.webkit.org/show_bug.cgi?id=194793 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New tooltip. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.willAutoStop): |
| (WI.TimelineManager.prototype.relaxAutoStop): |
| Getter and relaxer for auto stop behavior. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): |
| Drive-by fix some whitespace issues. |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| (WI.TimelineTabContentView.prototype._showRecordButton): |
| (WI.TimelineTabContentView.prototype._showContinueButton): |
| (WI.TimelineTabContentView.prototype._updateNavigationBarButtons): |
| (WI.TimelineTabContentView.prototype._capturingStartedOrStopped): |
| (WI.TimelineTabContentView.prototype._globalModifierKeysDidChange): |
| (WI.TimelineTabContentView.prototype._continueButtonClicked): |
| Show a "continue" like icon instead of the usual stop button when |
| a recording would auto-stop and the alt key is down. When pressed |
| this button will relax the auto-stop and continue the recording |
| until explicitly stopped by the user. |
| |
| 2019-02-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Fix a typo causing assertions in ConsoleManager |
| https://bugs.webkit.org/show_bug.cgi?id=194792 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/ConsoleManager.js: |
| (WI.ConsoleManager.prototype.initializeLogChannels): |
| Extra comma produced an undefined value in the list. |
| |
| 2019-02-18 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: typing ";" shouldn't focus on the next property when there's open parenthesis or comment |
| https://bugs.webkit.org/show_bug.cgi?id=194789 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._handleValueBeforeInput): |
| |
| 2019-02-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Better categorize CPU usage per-thread / worker |
| https://bugs.webkit.org/show_bug.cgi?id=194564 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord.prototype.get mainThreadUsage): |
| (WI.CPUTimelineRecord.prototype.get webkitThreadUsage): |
| (WI.CPUTimelineRecord.prototype.get workerThreadUsage): |
| (WI.CPUTimelineRecord.prototype.get unknownThreadUsage): |
| Build a better record from the protocol events. |
| |
| 2019-02-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: duplicate left double quotation mark (\u201C) in 'Unable to show certificate for “%s“.' |
| https://bugs.webkit.org/show_bug.cgi?id=194782 |
| <rdar://problem/48159683> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.async showCertificate): |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Add MSE logging configuration |
| https://bugs.webkit.org/show_bug.cgi?id=194719 |
| <rdar://problem/48122151> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Models/ConsoleMessage.js: |
| * UserInterface/Models/IssueMessage.js: |
| (WI.IssueMessage): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| |
| 2019-02-17 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Move CSS completion logic from SpreadsheetTextField to SpreadsheetStyleProperty |
| https://bugs.webkit.org/show_bug.cgi?id=194724 |
| |
| Reviewed by Devin Rousso. |
| |
| Move CSS value completion logic from SpreadsheetTextField, a generic text field, |
| to SpreadsheetStyleProperty. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._nameCompletionDataProvider): |
| (WI.SpreadsheetStyleProperty.prototype._valueCompletionDataProvider): |
| |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField): |
| (WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion): |
| (WI.SpreadsheetTextField.prototype.completionSuggestionsClickedCompletion): |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| (WI.SpreadsheetTextField.prototype._showSuggestionsView): |
| (WI.SpreadsheetTextField.prototype._getCompletionPrefix): Deleted. |
| |
| 2019-02-17 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Frontend performance is very slow reloading theverge.com - 50% of time in TreeOutline _indexOfTreeElement |
| https://bugs.webkit.org/show_bug.cgi?id=193605 |
| <rdar://problem/47403986> |
| |
| Reviewed by Devin Rousso. |
| |
| SelectionController should track an unordered Set of represented objects |
| instead of an ordered set of indexes. This eliminates the costly and |
| error-prone updates needed to keep the selected indexes in sync as items |
| are added and removed from TreeOutline (and Table, to a far lesser extent). |
| |
| The SelectionController interface is largely the same. Class and delegate |
| methods have been renamed to reflect the change from indexes to objects. |
| SelectionController tracks selected items in selection order. For the |
| operations that rely on objects being in insertion order, the controller |
| uses a comparator function provided at construction time. |
| |
| * UserInterface/Base/IndexSet.js: Removed. |
| No longer used. SelectionController now uses a plain Set. |
| |
| * UserInterface/Base/Utilities.js: |
| (value): |
| (get return): |
| Add utilities previously supplied by IndexSet and used by SelectionController. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController): |
| (WI.SelectionController.prototype.get lastSelectedItem): |
| (WI.SelectionController.prototype.get selectedItems): |
| (WI.SelectionController.prototype.set allowsMultipleSelection): |
| (WI.SelectionController.prototype.hasSelectedItem): |
| (WI.SelectionController.prototype.selectItem): |
| (WI.SelectionController.prototype.deselectItem): |
| (WI.SelectionController.prototype.selectAll): |
| (WI.SelectionController.prototype.deselectAll): |
| (WI.SelectionController.prototype.removeSelectedItems): |
| (WI.SelectionController.prototype.reset): |
| (WI.SelectionController.prototype.didRemoveItems): |
| (WI.SelectionController.prototype.handleKeyDown): |
| (WI.SelectionController.prototype.handleItemMouseDown): |
| (WI.SelectionController.prototype._deselectAllAndSelect): |
| (WI.SelectionController.prototype._selectItemsFromArrowKey): |
| (WI.SelectionController.prototype._firstSelectableItem): |
| (WI.SelectionController.prototype._lastSelectableItem): |
| (WI.SelectionController.prototype._previousSelectableItem): |
| (WI.SelectionController.prototype._nextSelectableItem): |
| (WI.SelectionController.prototype._updateSelectedItems): |
| (WI.SelectionController.prototype._addRange): |
| (WI.SelectionController.prototype._deleteRange): |
| (WI.SelectionController.prototype.get numberOfItems): Deleted. |
| (WI.SelectionController.prototype.didInsertItem): Deleted. |
| (WI.SelectionController.prototype.handleItemMouseDown.normalizeRange): Deleted. |
| (WI.SelectionController.prototype._nextSelectableIndex): Deleted. |
| (WI.SelectionController.prototype._previousSelectableIndex): Deleted. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| Remove IndexSet. |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype.tableIndexForRepresentedObject): |
| (WI.CookieStorageContentView.prototype.tableRepresentedObjectForIndex): |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.objectForSelection): |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.tableIndexForRepresentedObject): |
| (WI.NetworkTableContentView.prototype.tableRepresentedObjectForIndex): |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.get selectedRow): |
| (WI.Table.prototype.get selectedRows): |
| (WI.Table.prototype.isRowSelected): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype.removeRow): |
| (WI.Table.prototype.removeSelectedRows): |
| (WI.Table.prototype.selectionControllerSelectionDidChange): |
| (WI.Table.prototype.selectionControllerFirstSelectableItem): |
| (WI.Table.prototype.selectionControllerLastSelectableItem): |
| (WI.Table.prototype.selectionControllerPreviousSelectableItem): |
| (WI.Table.prototype.selectionControllerNextSelectableItem): |
| (WI.Table.prototype._handleMouseDown): |
| (WI.Table.prototype._removeRows): |
| (WI.Table.prototype._indexForRepresentedObject): |
| (WI.Table.prototype._representedObjectForIndex): |
| (WI.Table.prototype.selectionControllerNumberOfItems): Deleted. |
| (WI.Table.prototype.selectionControllerNextSelectableIndex): Deleted. |
| (WI.Table.prototype.selectionControllerPreviousSelectableIndex): Deleted. |
| (WI.Table.prototype._toggleSelectedRowStyle): Deleted. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.compareSiblings): |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.get selectedTreeElement): |
| (WI.TreeOutline.prototype.set selectedTreeElement): |
| (WI.TreeOutline.prototype.get selectedTreeElements): |
| (WI.TreeOutline.prototype.removeChildAtIndex): |
| (WI.TreeOutline.prototype.removeChildren): |
| (WI.TreeOutline.prototype._rememberTreeElement): |
| (WI.TreeOutline.prototype.getCachedTreeElement): |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| (WI.TreeOutline.prototype.selectionControllerFirstSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerLastSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableItem): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableItem): |
| (WI.TreeOutline.prototype.objectForSelection): |
| (WI.TreeOutline._generateStyleRulesIfNeeded): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableIndex): Deleted. |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex): Deleted. |
| (WI.TreeOutline._generateStyleRulesIfNeeded._indexesForSubtree.numberOfElementsInSubtree): Deleted. |
| |
| 2019-02-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Logging a native function to the console, such as `alert`, produces unhandled rejection |
| https://bugs.webkit.org/show_bug.cgi?id=194740 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.findFunctionSourceCodeLocation): |
| In case of a protocol error (common when attempting to get a location |
| for a native function) produce the NoSourceFound result. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendLocationLink): |
| Simplify with an arrow function. |
| |
| 2019-02-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Some timelines views work, show Legacy CPU timeline |
| https://bugs.webkit.org/show_bug.cgi?id=194738 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| |
| 2019-02-15 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Audit tab should have built-in accessibility tests. |
| https://bugs.webkit.org/show_bug.cgi?id=194005 |
| <rdar://problem/47657503> |
| |
| Updated built-in accessibility audits test suite. |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): |
| (WI.AuditManager): |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded.): Deleted. |
| |
| 2019-02-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: commas in CSS selectors are too dim |
| https://bugs.webkit.org/show_bug.cgi?id=194729 |
| <rdar://problem/48128592> |
| |
| Reviewed by Matt Baker. |
| |
| Use `--text-color-tertiary` for both light and dark modes. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration): |
| (.spreadsheet-css-declaration .selector > span): |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2019-02-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Unreviewed, fix intentation. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (.sidebar > .panel.details.css-style .rules): |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header): |
| |
| 2019-02-15 Dean Jackson <dino@apple.com> |
| |
| Allow emulation of user gestures from Web Inspector console |
| https://bugs.webkit.org/show_bug.cgi?id=194725 |
| <rdar://problem/48126604> |
| |
| Reviewed by Joseph Pecoraro and Devin Rousso. |
| |
| Add some UI for emulating a User Gesture when evaluating in the console. This |
| allows the developer to do things that would otherwise require actual interaction |
| with the page, such as start playback of media on iOS. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: Add a new setting for this option. |
| * UserInterface/Controllers/JavaScriptLogViewController.js: |
| (WI.JavaScriptLogViewController.prototype.consolePromptTextCommitted): |
| * UserInterface/Controllers/RuntimeManager.js: Call evaluate with this new option. |
| (WI.RuntimeManager.prototype.evaluateInInspectedWindow): |
| * UserInterface/Views/LogContentView.js: Add a new checkbox in the upper bar |
| that allows the user to toggle the setting. |
| (WI.LogContentView): |
| (WI.LogContentView.prototype.get navigationItems): |
| (WI.LogContentView.prototype._handleEmulateInUserGestureSettingChanged): |
| |
| * UserInterface/Views/NetworkTableContentView.js: Two drive-by typo fixes :) |
| (WI.NetworkTableContentView): perserve -> preserve |
| (WI.NetworkTableContentView.prototype.get navigationItems): checkboxs -> checkboxes |
| |
| 2019-02-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: valid values in style attributes are reported as unsupported property values |
| https://bugs.webkit.org/show_bug.cgi?id=194619 |
| <rdar://problem/47917373> |
| |
| Reviewed by Devin Rousso. |
| |
| Payload of inline styles may contain `range` that doesn't match |
| the actual text of the payload - it has an extra empty line at the end. |
| Mismatching ranges caused data corruption. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseStylePropertyPayload): |
| |
| 2019-02-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: remove unused parameter in _parseStylePropertyPayload |
| https://bugs.webkit.org/show_bug.cgi?id=194642 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseStyleDeclarationPayload): |
| The `styleText` parameter was never used |
| |
| 2019-02-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: all actions after an offscreen path modification are marked as offscreen path errors |
| https://bugs.webkit.org/show_bug.cgi?id=194684 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process): |
| |
| 2019-02-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: taking a second recording doesn't select the Initial State by default |
| https://bugs.webkit.org/show_bug.cgi?id=194685 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| |
| 2019-02-14 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r241497. |
| https://bugs.webkit.org/show_bug.cgi?id=194676 |
| |
| New test times out (Requested by NVI on #webkit). |
| |
| Reverted changeset: |
| |
| "Web Inspector: Styles: valid values in style attributes are |
| reported as unsupported property values" |
| https://bugs.webkit.org/show_bug.cgi?id=194619 |
| https://trac.webkit.org/changeset/241497 |
| |
| 2019-02-13 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: valid values in style attributes are reported as unsupported property values |
| https://bugs.webkit.org/show_bug.cgi?id=194619 |
| <rdar://problem/47917373> |
| |
| Reviewed by Devin Rousso. |
| |
| Payload of inline styles may contain `range` that doesn't match |
| the actual text of the payload - it has an extra empty line at the end. |
| Mismatching ranges caused data corruption. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseStylePropertyPayload): |
| |
| 2019-02-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Update combined and minified copyright header for 2018-2019 |
| https://bugs.webkit.org/show_bug.cgi?id=194635 |
| |
| Reviewed by Devin Rousso. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| |
| 2019-02-13 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, update localizable strings. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Experimental setting for CPU Usage Timeline improvements |
| https://bugs.webkit.org/show_bug.cgi?id=194556 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/LegacyCPUTimelineView.css: Added. |
| * UserInterface/Views/LegacyCPUTimelineView.js: Added. |
| Copy of CPUTimelineView.js/css to be used when the setting is not set. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| ContentView to create based on the setting. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| Experimental switch. |
| |
| 2019-02-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timeline.prototype.recordsInTimeRange uses a property most records do not have |
| https://bugs.webkit.org/show_bug.cgi?id=194549 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/Timeline.js: |
| (WI.Timeline.prototype.recordsInTimeRange): |
| |
| 2019-02-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: clicking on an empty space in the overview should deselect any selected record bar |
| https://bugs.webkit.org/show_bug.cgi?id=194365 |
| <rdar://problem/47868426> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TimelineRecordBar.js: |
| (WI.TimelineRecordBar.prototype._handleClick): |
| Mark the "click" event so that later listeners know it was handled by `WI.TimelineRecordBar`. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype._instrumentAdded): |
| (WI.TimelineOverview.prototype._instrumentRemoved): |
| (WI.TimelineOverview.prototype._handleGraphsContainerClick): Added. |
| (WI.TimelineOverview.prototype._handleOverviewGraphRecordSelected): Added. |
| (WI.TimelineOverview.prototype._recordSelected): |
| Listen for "click" on the graph container and deselect all records when fired, unless the |
| click was marked by a `WI.TimelineRecordBar`. |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype._recordSelected): |
| Ensure that all `WI.TimelineView` update their selected record whenever it changes for any |
| other `WI.TimelineView` (or if there is no selected record). |
| |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WI.TimelineOverviewGraph.prototype.didLayoutSubtree): Added. |
| Drive-by: since `WI.TimelineRecordBar` are reused when combining, we need to re-determine |
| which one holds the currently selected record. |
| |
| 2019-02-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unused maxUsage in CPUTimelineView |
| https://bugs.webkit.org/show_bug.cgi?id=194526 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.shown): |
| |
| 2019-02-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add context menu items to copy a resource's HTTP request/response data |
| https://bugs.webkit.org/show_bug.cgi?id=194261 |
| <rdar://problem/21693696> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.stringifyHTTPRequest): Added. |
| (WI.Resource.prototype.stringifyHTTPResponse): Added. |
| Don't include the request/response data, as that can be very large, and can easily be |
| accessed by actually selecting the resource in the Resources/Network tab. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForSourceCode): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: show keyboard shortcut in export tooltip |
| https://bugs.webkit.org/show_bug.cgi?id=194454 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditTestContentView.js: |
| (WI.AuditTestContentView): |
| (WI.AuditTestContentView.prototype.get saveData): |
| (WI.AuditTestContentView.prototype._exportResult): Added. |
| (WI.AuditTestContentView.prototype._handleExportButtonNavigationItemClicked): |
| (WI.AuditTestContentView.prototype._exportAudit): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-02-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: easier way to select a single line |
| https://bugs.webkit.org/show_bug.cgi?id=193305 |
| |
| Reviewed by Devin Rousso. |
| |
| Start property selection after mousedown when mouse cursor moves 8px, |
| which is ~1.5 times the width of a text character in the style editor. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowMouseMove): Added. |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection): |
| |
| 2019-02-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Debugger Popover should work with value in template string `${identifier}` |
| https://bugs.webkit.org/show_bug.cgi?id=194459 |
| <rdar://problem/47932564> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/CodeMirrorTokenTrackingController.js: |
| (WI.CodeMirrorTokenTrackingController.prototype._processJavaScriptExpression): |
| When walking backwards to get the full expression we were walking outside |
| of the interpolation group `outside ${inside}`. Stop walking backwards once |
| we cross the boundary. |
| |
| 2019-02-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Import / Export Heap Snapshots |
| https://bugs.webkit.org/show_bug.cgi?id=194448 |
| <rdar://problem/47928093> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New strings. |
| |
| * UserInterface/Proxies/HeapSnapshotProxy.js: |
| (WI.HeapSnapshotProxy): |
| (WI.HeapSnapshotProxy.deserialize): |
| (WI.HeapSnapshotProxy.prototype.get imported): |
| (WI.HeapSnapshotProxy.prototype.get snapshotStringData): |
| (WI.HeapSnapshotProxy.prototype.set snapshotStringData): |
| Include an "imported" state on the HeapSnapshot and allow for |
| stashing the snapshotStringData on the main thread side. |
| |
| * UserInterface/Proxies/HeapSnapshotWorkerProxy.js: |
| (WI.HeapSnapshotWorkerProxy.prototype.createImportedSnapshot): |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshotWorker.js: |
| (HeapSnapshotWorker.prototype.clearSnapshots): |
| (HeapSnapshotWorker.prototype.createSnapshot): |
| Provide a specialized way to create an imported HeapSnapshot. |
| Track imported snapshots separately since they won't want to |
| be searched for live/dead objects due to active recording GCs. |
| |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js: |
| (HeapSnapshot): |
| (HeapSnapshot.updateCategoriesAndMetadata): |
| (HeapSnapshot.allocationBucketCounts): |
| (HeapSnapshot.instancesWithClassName): |
| (HeapSnapshot.prototype.nodeWithIdentifier): |
| (HeapSnapshot.prototype.dominatedNodes): |
| (HeapSnapshot.prototype.retainedNodes): |
| (HeapSnapshot.prototype.retainers): |
| (HeapSnapshot.prototype.updateDeadNodesAndGatherCollectionData): |
| (HeapSnapshot.prototype.serialize): |
| (HeapSnapshot.prototype.serializeNode): |
| (HeapSnapshot.prototype._buildPostOrderIndexes): |
| (HeapSnapshot.prototype._buildDominatorIndexes): |
| (HeapSnapshot.prototype._buildRetainedSizes): |
| (HeapSnapshot.prototype._gcRootPathes.visitNode): |
| (HeapSnapshot.prototype._gcRootPathes): |
| Construct a HeapSnapshot knowinng whether or not it is imported. |
| Imported snapshots may be the "GCDebugging" snapshot type which |
| differs from "Inspector" by the number of node fields. So keep |
| the node field count a member instead of a global constant |
| in order to work with both snapshot types. |
| |
| * UserInterface/Models/HeapAllocationsInstrument.js: |
| (WI.HeapAllocationsInstrument.prototype._takeHeapSnapshot): |
| * UserInterface/Protocol/ConsoleObserver.js: |
| (WI.ConsoleObserver.prototype.heapSnapshot): |
| * UserInterface/Protocol/HeapObserver.js: |
| (WI.HeapObserver.prototype.trackingStart): |
| (WI.HeapObserver.prototype.trackingComplete): |
| Stash the original string JSON data on the main thread side |
| where we already have the data. |
| |
| * UserInterface/Views/HeapAllocationsTimelineOverviewGraph.js: |
| (WI.HeapAllocationsTimelineOverviewGraph.prototype.layout): |
| Don't show [S] icons for imported snapshots with no timestamp. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView): |
| (WI.HeapAllocationsTimelineView.prototype.get navigationItems): |
| (WI.HeapAllocationsTimelineView.prototype._importButtonNavigationItemClicked): |
| (WI.HeapAllocationsTimelineView.prototype._takeHeapSnapshotClicked): |
| Import button that just creates a new snapshot. |
| |
| * UserInterface/Views/HeapSnapshotContentView.js: |
| (WI.HeapSnapshotContentView): |
| (WI.HeapSnapshotContentView.prototype.get navigationItems): |
| (WI.HeapSnapshotContentView.prototype.get supportsSave): |
| (WI.HeapSnapshotContentView.prototype.get saveData): |
| (WI.HeapSnapshotContentView.prototype._exportSnapshot): |
| Export button that saves the original data. |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.displayNameForRecord): |
| Specialized display string for imported snapshots. |
| |
| 2019-02-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add Debug setting to show Internal Object Classes in Heap Snapshot |
| https://bugs.webkit.org/show_bug.cgi?id=194445 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/HeapSnapshotDataGridTree.js: |
| (WI.HeapSnapshotInstancesDataGridTree.prototype.populateTopLevel): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| |
| 2019-02-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: close unbalanced quotes and parenthesis when editing values |
| https://bugs.webkit.org/show_bug.cgi?id=182523 |
| <rdar://problem/37260209> |
| |
| Reviewed by Devin Rousso. |
| |
| Close CSS comments, append missing closed quotes and right parenthesis. |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions.completeUnbalancedValue): |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.set rawValue): |
| |
| 2019-02-07 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Make Timeline markers light gray instead of black in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=194417 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/RenderingFrameTimelineOverviewGraph.css: |
| (.timeline-overview-graph.rendering-frame > .divider): |
| * UserInterface/Views/TimelineRuler.css: |
| (.timeline-ruler > .markers > .divider): |
| |
| 2019-02-06 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: DOM: don't send the entire function string with each event listener |
| https://bugs.webkit.org/show_bug.cgi?id=194293 |
| <rdar://problem/47822809> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| (WI.EventListenerSectionGroup.prototype._functionTextOrLink): |
| |
| 2019-02-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: "Worker not found" uncaught protocol errors |
| https://bugs.webkit.org/show_bug.cgi?id=194319 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI.terminatePageTarget): |
| Remove Worker targets associated with the Page on navigation. |
| Eventually we will have to associate Workers with their parent |
| frame, but for now a transition can only happen at the Page |
| level, so we can eliminate all workers on the page. |
| |
| * UserInterface/Controllers/WorkerManager.js: |
| (WI.WorkerManager.prototype.workerCreated): |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.WorkerConnection.sendMessageToBackend): |
| Allow any WorkerAgent domain message to fail silently. This can |
| happen if a Worker is created and destroyed before the frontend |
| hears about it and sends messages to the backend for that Worker. |
| |
| 2019-02-05 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: PropertiesChanged shouldn't fire when old and new text are both empty |
| https://bugs.webkit.org/show_bug.cgi?id=194318 |
| |
| Reviewed by Devin Rousso. |
| |
| Previously, WI.CSSStyleDeclaration.Event.PropertiesChanged fired when |
| old text and new text were empty strings. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| |
| 2019-02-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Lots of time spent updating related resources in ResourceDetailsSidebar when loading a page with lots of resources |
| https://bugs.webkit.org/show_bug.cgi?id=159577 |
| <rdar://problem/27251461> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WI.ResourceDetailsSidebarPanel.prototype._refreshRelatedResourcesSection): |
| (WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners): |
| |
| 2019-02-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements tab: selection is broken after deleting the selected node |
| https://bugs.webkit.org/show_bug.cgi?id=194300 |
| <rdar://problem/47829275> |
| |
| Reviewed by Devin Rousso. |
| |
| Deleting a TreeElement can cause an IndexSet including indexes |
| outside the deleted range to be passed to SelectionController, |
| corrupting the internal selection state. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._indexesForSubtree.numberOfElementsInSubtree): Added. |
| (WI.TreeOutline.prototype._indexesForSubtree): |
| Finding the last (rightmost leaf) TreeElement in the subtree used |
| TreeElement.prototype.traverseNextElement to do a depth first traversal. |
| This method did not stay within the subtree rooted at `treeElement`. |
| |
| 2019-02-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r240947): Resources tab: can't select main frame after refreshing page |
| https://bugs.webkit.org/show_bug.cgi?id=194254 |
| <rdar://problem/47805023> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| TreeOutline should always call the TreeElement `select` and `deselect` |
| methods while processing selection changes. Having notifications |
| suppressed by `this._suppressNextSelectionDidChangeEvent` should only |
| affect the dispatching of TreeOutline events. |
| |
| 2019-02-05 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: remove harmless "property was unlocked" asserts |
| https://bugs.webkit.org/show_bug.cgi?id=194262 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.remove): |
| (WI.SpreadsheetStyleProperty.prototype.update): |
| (WI.SpreadsheetStyleProperty.prototype._handleNameChange): |
| (WI.SpreadsheetStyleProperty.prototype._handleValueChange): |
| |
| 2019-02-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'classes.includes') |
| https://bugs.webkit.org/show_bug.cgi?id=194280 |
| <rdar://problem/47811159> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles): |
| Add a fallback value in case the `class` attribute isn't specified for the selected node. |
| |
| 2019-02-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Resources: missing resource data for document on reload |
| https://bugs.webkit.org/show_bug.cgi?id=194243 |
| <rdar://problem/47559021> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WI.ResourceDetailsSidebarPanel.prototype.set resource): |
| (WI.ResourceDetailsSidebarPanel.prototype._applyResourceEventListeners): |
| |
| * UserInterface/Base/Object.js: |
| (WI.Object.removeEventListener): |
| Drive-by: there's no need to iterate over the entire table to check if `thisObject` exists, |
| as that is handled for us by `ListMultimap`, which we later call anyways. |
| |
| 2019-02-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION: Resources: WI.TreeOutline assertions when refreshing the page |
| https://bugs.webkit.org/show_bug.cgi?id=194242 |
| <rdar://problem/47802027> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/FolderizedTreeElement.js: |
| (WI.FolderizedTreeElement.prototype.removeChildren): |
| FolderTreeElements are removed by the base class call to removeChildren. |
| Calling `removeChildren` for detached TreeElements is unnecessary. |
| |
| 2019-02-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION: clicking a selected call frame doesn't re-scroll |
| https://bugs.webkit.org/show_bug.cgi?id=194169 |
| <rdar://problem/47743864> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._handleMouseDown): |
| Add a special case for a single-selection TreeOutline with |
| allowsRepeatSelection enabled. Since the element is already |
| selected, bypass the SelectionCongroller and dispatch an |
| event with event.data.selectedByUser set to true. |
| |
| 2019-02-04 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: fix race conditions when editing |
| https://bugs.webkit.org/show_bug.cgi?id=192739 |
| <rdar://problem/46752925> |
| |
| Reviewed by Devin Rousso. |
| |
| Editing CSS property in the style editor syncronously updates CSSStyleDeclaration on the front-end |
| and asyncronously updates the backend by calling CSSAgent.setStyleText. After the new style text is applied |
| on the backend, CSSStyleDeclaration (on the front-end) gets updated. |
| |
| Unsure there's no race conditions by introducing `_updatesInProgressCount`: |
| |
| - Increment it before calling CSSAgent.setStyleText. |
| - Decrement it after CSSAgent.setStyleText is finished. |
| |
| Prevent updates of CSSStyleDeclaration when _updatesInProgressCount isn't 0. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.set text): Removed. |
| (WI.CSSStyleDeclaration.prototype.setText): Added. |
| Change the setter to a method since it has side effects including an asynchronous backend call. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype.changeStyleText): |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.get nameTextField): Removed. |
| (WI.SpreadsheetStyleProperty.prototype.get valueTextField): Removed. |
| Drive-by: remove unused code. |
| |
| 2019-02-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create icons for media event types instead of using a blue circle |
| https://bugs.webkit.org/show_bug.cgi?id=190381 |
| <rdar://problem/45507995> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode.isPlayEvent): Added. |
| (WI.DOMNode.isPauseEvent): Added. |
| (WI.DOMNode.isStopEvent): Added. |
| |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| (WI.DOMEventsBreakdownView.prototype.layout): |
| * UserInterface/Views/DOMEventsBreakdownView.css: |
| (.dom-events-breakdown tr > :matches(th, td)): |
| (.dom-events-breakdown .graph): |
| (.dom-events-breakdown .graph > :matches(img, .area)): Added. |
| (.dom-events-breakdown .graph > img): Added. |
| (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > img): Added. |
| (.dom-events-breakdown .graph > :matches(.point, .area)): Deleted. |
| (.dom-events-breakdown .graph > .point): Deleted. |
| (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > .point): Deleted. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): |
| |
| * UserInterface/Images/EventPause.svg: Added. |
| * UserInterface/Images/EventPlay.svg: Added. |
| * UserInterface/Images/EventProcessing.svg: Added. |
| * UserInterface/Images/EventStop.svg: Added. |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Make WI.ColumnChart a WI.View subclass |
| https://bugs.webkit.org/show_bug.cgi?id=194171 |
| |
| Rubber-stamped by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph): |
| * UserInterface/Views/ColumnChart.js: |
| (WI.ColumnChart): |
| (WI.ColumnChart.prototype.set size): |
| (WI.ColumnChart.prototype.layout): |
| (WI.ColumnChart.prototype.get element): Deleted. |
| (WI.ColumnChart.prototype.needsLayout): Deleted. |
| (WI.ColumnChart.prototype.updateLayout): Deleted. |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Make WI.StackedLineChart a WI.View subclass |
| https://bugs.webkit.org/show_bug.cgi?id=194119 |
| |
| Rubber-stamped by Devin Rousso. |
| |
| * UserInterface/Views/LineChart.js: |
| (WI.LineChart.prototype.layout): |
| (WI.LineChart): |
| * UserInterface/Views/MemoryTimelineOverviewGraph.js: |
| (WI.MemoryTimelineOverviewGraph): |
| * UserInterface/Views/StackedLineChart.js: |
| (WI.StackedLineChart): |
| (WI.StackedLineChart.prototype.set size): |
| (WI.StackedLineChart.prototype.layout): |
| (WI.StackedLineChart.prototype.get element): Deleted. |
| (WI.StackedLineChart.prototype.get points): Deleted. |
| (WI.StackedLineChart.prototype.needsLayout): Deleted. |
| (WI.StackedLineChart.prototype.updateLayout): Deleted. |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Make WI.CircleChart a WI.View subclass |
| https://bugs.webkit.org/show_bug.cgi?id=194118 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CircleChart.js: |
| (WI.CircleChart.prototype.get centerElement): |
| (WI.CircleChart.prototype.layout): |
| (WI.CircleChart.prototype.get element): Deleted. |
| (WI.CircleChart.prototype.needsLayout): Deleted. |
| (WI.CircleChart.prototype.updateLayout): Deleted. |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView): |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timeline Detail Views do not reset properly when new time range selection contains nothing |
| https://bugs.webkit.org/show_bug.cgi?id=194115 |
| <rdar://problem/47716693> |
| |
| Rubber-stamped by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView.prototype.reset): |
| (WI.CPUTimelineView.prototype.clear): |
| (WI.CPUTimelineView.prototype.layout): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.prototype.reset): |
| (WI.MemoryTimelineView.prototype.clear): |
| (WI.MemoryTimelineView.prototype.layout): |
| When there are no visible records in the selected range clear our UI. |
| Introduce a `clear` method that clears the UI but keeps |
| non-range-specific values (e.g. maximums). |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timeline graphs have drawing issues with multiple discontinuities |
| https://bugs.webkit.org/show_bug.cgi?id=194110 |
| <rdar://problem/47714356> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.layout.xScale): Deleted. |
| * UserInterface/Views/MemoryTimelineOverviewGraph.js: |
| (WI.MemoryTimelineOverviewGraph.prototype.layout.insertDiscontinuity): |
| (WI.MemoryTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.prototype.layout.xScale): |
| (WI.MemoryTimelineView.prototype.layout.yScale): |
| (WI.MemoryTimelineView.prototype.layout): |
| Handle if multiple discontinuities exist between records. |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timeline time range selection should show duration alongside start and end |
| https://bugs.webkit.org/show_bug.cgi?id=194109 |
| <rdar://problem/47714279> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype._updateTimeRangePathComponents): |
| Include the duration when not obvious. |
| |
| 2019-02-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve API and documentation of ColumnChart |
| https://bugs.webkit.org/show_bug.cgi?id=193982 |
| |
| Reviewed by Devin Rousso. |
| |
| This used to be named "BarChart". Convert remaining instances |
| of "bar" to "column" and clean up related things. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (body[dir=rtl] .timeline-overview-graph.cpu > .column-chart): |
| (.timeline-overview-graph.cpu > .column-chart > svg > rect): |
| (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart): Deleted. |
| (.timeline-overview-graph.cpu > .bar-chart > svg > rect): Deleted. |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| * UserInterface/Views/ColumnChart.js: |
| (WI.ColumnChart): |
| (WI.ColumnChart.prototype.get columns): |
| (WI.ColumnChart.prototype.addColumn): |
| (WI.ColumnChart.prototype.clear): |
| (WI.ColumnChart.prototype.updateLayout): |
| (WI.ColumnChart.prototype.get bars): Deleted. |
| (WI.ColumnChart.prototype.addBar): Deleted. |
| * UserInterface/Views/StackedLineChart.js: |
| (WI.StackedLineChart.prototype.get element): |
| (WI.StackedLineChart.prototype.get points): |
| |
| 2019-01-31 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Timeline time range selection sometimes shows 0.000, should be just 0 |
| https://bugs.webkit.org/show_bug.cgi?id=194108 |
| <rdar://problem/47714273> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Utilities.js: |
| Check under epsilon for the zero case. |
| |
| 2019-01-31 Matt Baker <mattbaker@apple.com> |
| |
| REGRESSION(r?): Web Inspector: Clicking on text doesn't move text caret when editing innerHTML/tagName/attribute |
| https://bugs.webkit.org/show_bug.cgi?id=192652 |
| <rdar://problem/46684612> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.canSelectOnMouseDown): |
| Call to Event.preventDefault() should be made here instead of at the |
| TreeOutline level. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.selectOnMouseDown): Deleted. |
| Remove dead code. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline._handleMouseDown): |
| Do not prevent default event handling when the item cannot be selected. |
| This matches TreeOutline behavior prior to introducing SelectionController. |
| |
| 2019-01-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Memory Timeline View should be responsive / resizable |
| https://bugs.webkit.org/show_bug.cgi?id=153758 |
| <rdar://problem/24444320> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Leverage the SVG `viewBox` (which was misspelled) to scale the graphs when the width of the |
| container changes. The `viewBox` used is equal to the total amount of time that is visible. |
| |
| Make `WI.LineChart` (and its container classes) into subclasses of `WI.View` to leverage the |
| existing layout system. |
| |
| Prevent any work from being done when resizing, as this is now handled by CSS/SVG. |
| |
| * UserInterface/Views/LineChart.js: |
| (WI.LineChart): |
| (WI.LineChart.prototype.set size): |
| (WI.LineChart.prototype.addPoint): |
| (WI.LineChart.prototype.clear): |
| (WI.LineChart.prototype.layout): |
| (WI.LineChart.prototype.get element): Deleted. |
| (WI.LineChart.prototype.get points): Deleted. |
| (WI.LineChart.prototype.needsLayout): Deleted. |
| (WI.LineChart.prototype.updateLayout): Deleted. |
| |
| * UserInterface/Views/CPUUsageView.js: |
| (WI.CPUUsageView): |
| (WI.CPUUsageView.prototype.clear): |
| (WI.CPUUsageView.prototype.updateChart): Added. |
| (WI.CPUUsageView.prototype.get element): Deleted. |
| (WI.CPUUsageView.prototype.layoutWithDataPoints): Deleted. |
| * UserInterface/Views/CPUUsageView.css: |
| (.cpu-usage-view): |
| (.cpu-usage-view > .details): |
| (.cpu-usage-view > .graph, .cpu-usage-view > .graph > .line-chart, .cpu-usage-view > .graph > .line-chart > svg): Added. |
| (.cpu-usage-view > .graph): Deleted. |
| |
| * UserInterface/Views/CPUTimelineView.js: |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype.layout.layoutView): |
| (WI.CPUTimelineView.prototype.layout.layoutView.xScale): |
| (WI.CPUTimelineView.prototype.layout.layoutView.yScale): |
| * UserInterface/Views/CPUTimelineView.css: |
| (body .timeline-view.cpu): Added. |
| (.timeline-view.cpu > .content): |
| (.timeline-view.cpu): Deleted. |
| |
| * UserInterface/Views/MemoryCategoryView.js: |
| (WI.MemoryCategoryView): |
| (WI.MemoryCategoryView.prototype.clear): |
| (WI.MemoryCategoryView.prototype.updateChart): Added. |
| (WI.MemoryCategoryView.prototype.get element): Deleted. |
| (WI.MemoryCategoryView.prototype.layoutWithDataPoints): Deleted. |
| * UserInterface/Views/MemoryCategoryView.css: |
| (.memory-category-view): |
| (.memory-category-view > .details): |
| (.memory-category-view > .graph, .memory-category-view > .graph > .line-chart, .memory-category-view > .graph > .line-chart > svg): Added. |
| (.memory-category-view > .graph): Deleted. |
| |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.prototype.layout): |
| (WI.MemoryTimelineView.prototype.layout.layoutCategoryView): |
| (WI.MemoryTimelineView.prototype.layout.layoutCategoryView.xScale): |
| (WI.MemoryTimelineView.prototype.layout.layoutCategoryView.yScale): |
| (WI.MemoryTimelineView.prototype._initializeCategoryViews): |
| (WI.MemoryTimelineView.prototype._initializeCategoryViews.appendLegendRow): |
| * UserInterface/Views/MemoryTimelineView.css: |
| (.timeline-view.memory > .content > .overview): |
| (.timeline-view.memory > .content > .overview > .divider): |
| (.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage, .timeline-view.memory > .content > .overview .legend .size): Added. |
| (.timeline-view.memory .legend): |
| (.timeline-view.memory .legend .row): Added. |
| (.timeline-view.memory .legend .row + .row): Added. |
| (.timeline-view.memory .legend .swatch): Addd. |
| (.timeline-view.memory .legend .swatch.javascript): Addd. |
| (.timeline-view.memory .legend .swatch.images): Addd. |
| (.timeline-view.memory .legend .swatch.layers): Addd. |
| (.timeline-view.memory .legend .swatch.page): Addd. |
| (.timeline-view.memory .legend .swatch.current): Addd. |
| (.timeline-view.memory > .content): Deleted. |
| (.timeline-view.memory > .content > .overview .total-usage, .timeline-view.memory > .content > .overview .max-percentage): |
| (body[dir=ltr] .timeline-view.memory .legend): Deleted. |
| (body[dir=rtl] .timeline-view.memory .legend): Deleted. |
| (.timeline-view.memory .legend > .row): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch): Deleted. |
| (body[dir=ltr] .timeline-view.memory .legend > .row > .swatch): Deleted. |
| (body[dir=rtl] .timeline-view.memory .legend > .row > .swatch): Deleted. |
| (.timeline-view.memory .legend > .row > p): Deleted. |
| (body[dir=ltr] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted. |
| (body[dir=rtl] .timeline-view.memory .legend > .row > :matches(.label, .size)): Deleted. |
| (.timeline-view.memory .legend > .row > .label): Deleted. |
| (.timeline-view.memory .legend > .row > .size): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch.javascript): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch.images): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch.layers): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch.page): Deleted. |
| (.timeline-view.memory .legend > .row > .swatch.current): Deleted. |
| |
| 2019-01-30 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Changes: group CSS rules by resource |
| https://bugs.webkit.org/show_bug.cgi?id=193940 |
| <rdar://problem/47617785> |
| |
| Reviewed by Matt Baker. |
| |
| Create resource sections with source links in their headers. |
| |
| Also: |
| - Use read-only WI.SpreadsheetStyleProperty to display inline swatches for colors; |
| - Make the red and green background span the entire width of the panel. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/ChangesDetailsSidebarPanel.css: |
| (.sidebar > .panel.changes-panel): |
| (.sidebar > .panel.changes-panel .css-rule): |
| (.sidebar > .panel.selected.changes-panel.empty): |
| (.changes-panel .resource-section): |
| (.changes-panel .resource-section > .header): |
| (.changes-panel .resource-section > .header > a:hover): |
| (.sidebar > .panel.changes-panel .selector-line,): |
| (.changes-panel .css-property-line > .property): |
| (.changes-panel .css-property-line.unchanged): |
| (.changes-panel .css-property-line.added): |
| (.changes-panel .css-property-line.removed): |
| (.changes-panel .css-property-line.removed::before): |
| (.changes-panel .css-property-line.added::before): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: |
| (WI.ChangesDetailsSidebarPanel.prototype.layout): |
| (WI.ChangesDetailsSidebarPanel.prototype._createRuleElement): |
| (WI.ChangesDetailsSidebarPanel.prototype._createLocationLink): |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| Allow passing `null` as a delegate. |
| |
| 2019-01-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: change style of device settings override popover content |
| https://bugs.webkit.org/show_bug.cgi?id=194049 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| (WI._handleDeviceSettingsToolbarButtonClicked.showUserAgentInput): |
| (WI._handleDeviceSettingsToolbarButtonClicked.createContainer): Deleted. |
| * UserInterface/Views/Main.css: |
| (.device-settings-content): |
| (.device-settings-content > tr > td:first-child): Added. |
| (.device-settings-content .container): |
| (.device-settings-content .container > * + *): Added. |
| (.device-settings-content .column): Added. |
| (.device-settings-content .user-agent select): Added. |
| (.device-settings-content .user-agent input): Added. |
| (.device-settings-content label + label): Added. |
| (.device-settings-content label > input): Added. |
| (.device-settings-content .columns): Deleted. |
| (.device-settings-content .columns > .column): Deleted. |
| (.device-settings-content .columns > .column + .column): Deleted. |
| (.device-settings-content .user-agent-value): Deleted. |
| (.device-settings-content .user-agent-value > select): Deleted. |
| (.device-settings-content .user-agent-value > input): Deleted. |
| (body[dir=ltr] .device-settings-content .user-agent-value > input): Deleted. |
| (body[dir=rtl] .device-settings-content .user-agent-value > input): Deleted. |
| |
| 2019-01-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: null is not an object (evaluating 'url.startsWith') |
| https://bugs.webkit.org/show_bug.cgi?id=194029 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ConsoleMessageView.js: |
| (WI.ConsoleMessageView.prototype._appendLocationLink): |
| |
| 2019-01-29 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Enabled Changes panel in Elements tab by default |
| https://bugs.webkit.org/show_bug.cgi?id=193986 |
| <rdar://problem/47647683> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2019-01-29 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: enable computed style cascades by default |
| https://bugs.webkit.org/show_bug.cgi?id=193983 |
| <rdar://problem/47645821> |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.computed-style-properties): |
| (.computed-style-properties .property .go-to-arrow): |
| (.details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): |
| (.details-section.computed-style-properties > .content): |
| (@media (prefers-color-scheme: dark)): |
| (.computed-with-traces .computed-style-properties): Deleted. |
| (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): Deleted. |
| (.computed-with-traces .details-section.computed-style-properties > .content): Deleted. |
| (.computed-with-traces .computed-style-properties .property .go-to-arrow): Deleted. |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.refresh): |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: |
| (WI.ComputedStyleDetailsSidebarPanel): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2019-01-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unnecessary promise rejection handlers now that we use the global onunhandledrejection handler |
| https://bugs.webkit.org/show_bug.cgi?id=193921 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Utilities.js: |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._exportHAR): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.updateFormattedState): |
| |
| 2019-01-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to edit page WebRTC settings on a remote target |
| https://bugs.webkit.org/show_bug.cgi?id=193863 |
| <rdar://problem/47572764> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.initializeTarget): |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| (WI._handleDeviceSettingsToolbarButtonClicked.createCheckbox): |
| (WI._handleDeviceSettingsToolbarButtonClicked.createColumns): Deleted. |
| * UserInterface/Views/Main.css: |
| (.device-settings-content .container): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-28 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements tab should toggle visibility for all selected nodes |
| https://bugs.webkit.org/show_bug.cgi?id=193089 |
| <rdar://problem/47009256> |
| |
| Reviewed by Devin Rousso. |
| |
| Update "Toggle Visibility" command in DOM tree for multiple selection. |
| When both visible and hidden elements are selected in the DOM tree, |
| the toggle command behaves contextually. If one or more elements are |
| visible, they are hidden, otherwise they are shown. The context menu |
| shows "Hide Elements" or "Show Elements", respectively. |
| |
| When only one element is selected, or the context menu target element |
| is not selected, the command continues to be "Toggle Visibility". |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.get isNodeHidden): Added. |
| (WI.DOMTreeElement.prototype.toggleElementVisibility.inspectedPage_node_injectStyleAndToggleClass): |
| (WI.DOMTreeElement.prototype.toggleElementVisibility): |
| (WI.DOMTreeElement.prototype._populateTagContextMenu): |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline): |
| (WI.DOMTreeOutline.prototype.toggleSelectedElementsVisibility): Added. |
| Provide a public method for toggling the visibility of selected DOM nodes. |
| Used by the "H" keyboard shortcut and DOMTreeElement context menu. |
| |
| (WI.DOMTreeOutline.prototype._hideElements): |
| (WI.DOMTreeOutline.prototype._hideElement): Deleted. |
| Rename for multiple selection. |
| |
| 2019-01-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r240351. |
| https://bugs.webkit.org/show_bug.cgi?id=193918 |
| |
| Causes overlapping Timeline records, as some record types |
| don't have an endTime (Requested by drousso on #webkit). |
| |
| Reverted changeset: |
| |
| "WebInspector: Confusingly nested events in the timeline for |
| Mutation Observers" |
| https://bugs.webkit.org/show_bug.cgi?id=192884 |
| https://trac.webkit.org/changeset/240351 |
| |
| 2019-01-28 Matt Baker <mattbaker@apple.com> |
| |
| REGRESSION(?): Web Inspector: Can have multiple Timelines selected after edit mode |
| https://bugs.webkit.org/show_bug.cgi?id=193808 |
| <rdar://problem/47537734> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.didRemoveItems): |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._indexesForSubtree): |
| Fix a bug where no IndexSet was returned when passed a TreeElement with |
| no children. This caused the Timelines tree selection to be corrupted when |
| entering and exiting edit mode, as TreeElements are inserted and removed. |
| |
| 2019-01-28 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Add Changes panel to Elements tab |
| https://bugs.webkit.org/show_bug.cgi?id=193803 |
| |
| Reviewed by Devin Rousso. |
| |
| Introduce the new experimental Changes Panel. It shows a list of CSS changes |
| made via Web Inspector, so the changes could be copied to the source files. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Base/Utilities.js: |
| (Array.diffArrays): Added. |
| |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager): |
| (WI.CSSManager.prototype.get modifiedCSSRules): |
| (WI.CSSManager.prototype.addModifiedCSSRule): |
| (WI.CSSManager.prototype.removeModifiedCSSRule): |
| (WI.CSSManager.prototype._mainResourceDidChange): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty): |
| (WI.CSSProperty.prototype.remove): |
| (WI.CSSProperty.prototype.replaceWithText): |
| (WI.CSSProperty.prototype.commentOut): |
| (WI.CSSProperty.prototype.set text): |
| (WI.CSSProperty.prototype.get modified): |
| (WI.CSSProperty.prototype.set name): |
| (WI.CSSProperty.prototype.set rawValue): |
| (WI.CSSProperty.prototype.get initialState): |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| (WI.CSSProperty.prototype._markModified): |
| Mark CSSProperty modified *before* making any changes to copy its initial state. |
| |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule): |
| (WI.CSSRule.prototype.get id): |
| (WI.CSSRule.prototype.get initialState): |
| (WI.CSSRule.prototype.get stringId): |
| (WI.CSSRule.prototype.markModified): |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.get initialState): |
| (WI.CSSStyleDeclaration.prototype.get enabledProperties): |
| (WI.CSSStyleDeclaration.prototype.get properties): |
| (WI.CSSStyleDeclaration.prototype.set properties): |
| (WI.CSSStyleDeclaration.prototype.propertyForName): |
| (WI.CSSStyleDeclaration.prototype.newBlankProperty): |
| (WI.CSSStyleDeclaration.prototype.markModified): |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.css: Added. |
| (.sidebar > .panel.changes-panel): |
| (.sidebar > .panel.changes-panel:not(.empty)): |
| (.sidebar > .panel.changes-panel.empty): |
| (.changes-panel ins): |
| (.changes-panel del): |
| (.changes-panel del.css-property::before): |
| (.changes-panel ins.css-property::before): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/ChangesDetailsSidebarPanel.js: Added. |
| (WI.ChangesDetailsSidebarPanel): |
| (WI.ChangesDetailsSidebarPanel.prototype.inspect): |
| (WI.ChangesDetailsSidebarPanel.prototype.supportsDOMNode): |
| (WI.ChangesDetailsSidebarPanel.prototype.shown): |
| (WI.ChangesDetailsSidebarPanel.prototype.detached): |
| (WI.ChangesDetailsSidebarPanel.prototype.layout): |
| (WI.ChangesDetailsSidebarPanel.prototype._mainResourceDidChange): |
| |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property): |
| (.spreadsheet-style-declaration-editor .property.modified): |
| (.spreadsheet-style-declaration-editor .property.modified:not(.selected)): |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| |
| 2019-01-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: handle CSS Color 4 color syntaxes |
| https://bugs.webkit.org/show_bug.cgi?id=193166 |
| <rdar://problem/47062403> |
| |
| Reviewed by Simon Fraser. |
| |
| * UserInterface/Models/Color.js: |
| (WI.Color.fromString): |
| (WI.Color.fromString.splitFunctionString): Added. |
| (WI.Color.fromString.parseFunctionAlpha): Added. |
| (WI.Color.fromString.parseFunctionComponent): Added. |
| (WI.Color.fromString.parseHueComponent): Added. |
| (WI.Color.fromString.parsePercentageComponent): Added. |
| |
| 2019-01-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to edit the user agent of a remote target |
| https://bugs.webkit.org/show_bug.cgi?id=193862 |
| <rdar://problem/47359292> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| (WI.initializeTarget): |
| (WI._handleDeviceSettingsToolbarButtonClicked): |
| (WI._handleDeviceSettingsToolbarButtonClicked.updateActivatedState): |
| (WI._handleDeviceSettingsToolbarButtonClicked.applyOverriddenUserAgent): |
| (WI._handleDeviceSettingsToolbarButtonClicked.applyOverriddenSetting): |
| (WI._handleDeviceSettingsToolbarButtonClicked.createContainer): |
| (WI._handleDeviceSettingsToolbarButtonClicked.createColumns): |
| (WI._handleDeviceSettingsToolbarButtonClicked.calculateTargetFrame): |
| (WI._handleDeviceSettingsToolbarButtonClicked.showUserAgentInput): |
| |
| * UserInterface/Views/Main.css: |
| (.device-settings-content): |
| (.device-settings-content .user-agent-value): Added. |
| (.device-settings-content .user-agent-value > select): Added. |
| (.device-settings-content .user-agent-value > input): Added. |
| (body[dir=ltr] .device-settings-content .user-agent-value > input): Added. |
| (body[dir=rtl] .device-settings-content .user-agent-value > input): Added. |
| (.device-settings-content label > input): Added. |
| (body[dir=ltr] .device-settings-content label > input): Deleted. |
| (body[dir=rtl] .device-settings-content label > input): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide a way to edit page settings on a remote target |
| https://bugs.webkit.org/show_bug.cgi?id=193813 |
| <rdar://problem/47359510> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add toolbar button that shows a popover with the target's (page's) settings when clicked. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| (WI.initializeTarget): Added. |
| (WI._handleDeviceSettingsToolbarButtonClicked): Added. |
| (WI.didDismissPopover): Added. |
| * UserInterface/Views/Main.css: |
| (.device-settings-content): Added. |
| (.device-settings-content .columns): Added. |
| (.device-settings-content .columns > .column): Added. |
| (.device-settings-content .columns > .column + .column): Added. |
| (body[dir=ltr] .device-settings-content label > input): Added. |
| (body[dir=rtl] .device-settings-content label > input): Added. |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype._update.area): |
| (WI.Popover.prototype._update): |
| (WI.Popover.prototype._drawBackground): |
| (WI.Popover.prototype._bestMetricsForEdge): |
| (WI.Popover.prototype._drawFrame): |
| If the best area is negative, treat it as the worst area. |
| Allow areas to be clamped so long as the clamped edge is not the preferred edge. |
| |
| * UserInterface/Base/Test.js: |
| (WI.initializeTarget): Added. |
| |
| * UserInterface/Images/Device.svg: Added. |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: unable to import audits |
| https://bugs.webkit.org/show_bug.cgi?id=193861 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.async processJSON): |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: No node with given id found |
| https://bugs.webkit.org/show_bug.cgi?id=193833 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype.layout): |
| (WI.CanvasContentView.prototype._refreshPixelSize): |
| Drive-by: show the refresh button when viewing a specific canvas. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| Reset to the overview if the canvas is removed. |
| |
| 2019-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Improve Dark Mode appearance within Memory timeline |
| https://bugs.webkit.org/show_bug.cgi?id=193804 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TimelineOverview.css: |
| (.timeline-overview.edit-instruments > .tree-outline.timelines .item.selected): |
| (.timeline-overview > .tree-outline.timelines .item.selected + .item,): |
| (@media (prefers-color-scheme: dark)): |
| (.timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted. |
| (body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item): Deleted. |
| Fix some colors for Timelines edit mode. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu:nth-child(even) > .legend): |
| (@media (prefers-color-scheme: dark)): |
| (.timeline-overview-graph.cpu > .legend): |
| (.timeline-overview-graph:nth-child(even) > .legend): Deleted. |
| * UserInterface/Views/MemoryTimelineOverviewGraph.css: |
| (.timeline-overview-graph.memory:nth-child(even) > .legend): |
| (@media (prefers-color-scheme: dark)): |
| (.timeline-overview-graph.memory > .legend): |
| (.timeline-overview-graph:nth-child(even) > .legend): Deleted. |
| Improved colors in CPU / Memory overview graph legends. |
| |
| * UserInterface/Views/CPUUsageView.css: |
| (.cpu-usage-view > .details): |
| * UserInterface/Views/CircleChart.css: |
| (.circle-chart > svg > path.background): |
| * UserInterface/Views/MemoryCategoryView.css: |
| (.memory-category-view > .details): |
| (.memory-category-view > .details > .name): |
| * UserInterface/Views/MemoryTimelineView.css: |
| (.timeline-view.memory > .content > .overview .total-usage,): |
| (.timeline-view.memory .legend > .row > .size): |
| Improved colors in CPU / Memory detail views. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Add a default --text-secondary-color which will end up slightly |
| lighter in dark mode where it was already implemented. |
| |
| (@media (prefers-color-scheme: dark)): |
| Improved max-comparison colors. |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: DOMContentLoaded and load event lines need to be more obvious |
| https://bugs.webkit.org/show_bug.cgi?id=193186 |
| <rdar://problem/45100694> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Shift around z-index values to make Timelines markers appear behind record bars. Widen the |
| marker hit region to make it easier to see the tooltip. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| * UserInterface/Views/TimelineRuler.css: |
| (.timeline-ruler): |
| (.timeline-ruler > .markers): |
| (.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): |
| (.timeline-ruler > .markers > .marker::after): Added. |
| (body[dir=ltr] .timeline-ruler > .markers > .marker::after): Added. |
| (body[dir=rtl] .timeline-ruler > .markers > .marker::after): Added. |
| (.timeline-ruler > .markers > .marker.current-time): |
| (.timeline-ruler > .markers > .marker.current-time::after): Added. |
| (.timeline-ruler > .markers > .marker.load-event): |
| (.timeline-ruler > .markers > .marker.dom-content-event): |
| (.timeline-ruler > .markers > .marker.timestamp): |
| (.timeline-ruler > .selection-handle): |
| (.timeline-ruler.both-handles-clamped > .selection-handle): |
| (.timeline-ruler > .shaded-area): |
| (.timeline-ruler > .markers > .marker.current-time::before): Deleted. |
| |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar): |
| (.timeline-record-bar > .segment): |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (.timeline-overview-graph.cpu > .legend): |
| * UserInterface/Views/MemoryTimelineOverviewGraph.css: |
| (.timeline-overview-graph.memory > .legend): |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: remove experimental setting |
| https://bugs.webkit.org/show_bug.cgi?id=193743 |
| <rdar://problem/28234022> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Setting.js: |
| (WI.Setting): |
| (WI.Setting.localStorageKey): Added. |
| (WI.Setting.migrateValue): |
| Drive-by: add the localStorage key prefix to the key passed into `WI.Setting.migrateValue`. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| |
| * UserInterface/Views/AuditTabContentView.js: |
| (WI.AuditTabContentView.isTabAllowed): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: show uncaught exception view for unhandled promise rejections |
| https://bugs.webkit.org/show_bug.cgi?id=193832 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| (handleUnhandledPromiseRejection): Added. |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r237808): offscreen path warning doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=193830 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process): |
| |
| 2019-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add another Protocol Version (iOS 12.2) |
| https://bugs.webkit.org/show_bug.cgi?id=193810 |
| <rdar://problem/42981838> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/Legacy/12.2/InspectorBackendCommands.js: Added. |
| * Versions/Inspector-iOS-12.2.json: Added. |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: `WI.Setting.migrateValue` doesn't take into account the key prefix |
| https://bugs.webkit.org/show_bug.cgi?id=193814 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Setting.js: |
| (WI.Setting): |
| (WI.Setting.migrateValue): |
| (WI.Setting._localStorageKey): Added. |
| |
| 2019-01-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: improve invalid Audit/Recording JSON error messages |
| https://bugs.webkit.org/show_bug.cgi?id=193476 |
| <rdar://problem/47303659> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/AuditTestBase.js: |
| (WI.AuditTestBase): |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.async fromPayload): |
| * UserInterface/Models/AuditTestGroup.js: |
| (WI.AuditTestGroup.async fromPayload): |
| * UserInterface/Models/AuditTestCaseResult.js: |
| (WI.AuditTestCaseResult.async fromPayload.checkArray): |
| (WI.AuditTestCaseResult.async fromPayload): |
| * UserInterface/Models/AuditTestGroupResult.js: |
| (WI.AuditTestGroupResult.async fromPayload): |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.synthesizeWarning): Added. |
| (WI.AuditManager.synthesizeError): |
| (WI.AuditManager.prototype.async processJSON): |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.fromPayload): |
| (WI.Recording.synthesizeWarning): Added. |
| (WI.Recording.synthesizeError): |
| * UserInterface/Models/RecordingFrame.js: |
| (WI.RecordingFrame.fromPayload): |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.fromPayload): |
| (WI.RecordingAction.prototype.async swizzle): |
| (WI.RecordingAction.prototype.apply): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.processJSON): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: add supports key to test/group for compatibility |
| https://bugs.webkit.org/show_bug.cgi?id=193686 |
| <rdar://problem/47460872> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/AuditTestBase.js: |
| (WI.AuditTestBase): |
| (WI.AuditTestBase.prototype.get supported): Added. |
| (WI.AuditTestBase.prototype.set supported): Added. |
| (WI.AuditTestBase.prototype.set disabled): |
| (WI.AuditTestBase.prototype.async start): |
| (WI.AuditTestBase.prototype.stop): |
| (WI.AuditTestBase.toJSON): |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.async fromPayload): |
| * UserInterface/Models/AuditTestGroup.js: |
| (WI.AuditTestGroup): |
| (WI.AuditTestGroup.async fromPayload): |
| (WI.AuditTestGroup.prototype.get supported): Added. |
| (WI.AuditTestGroup.prototype.set supported): Added. |
| Add support for a "supports" key in the test JSON that prevents the test from being run if |
| it's value is lower than the frontend/backend version. |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement.prototype.onattach): |
| (WI.AuditTreeElement.prototype.ondelete): |
| (WI.AuditTreeElement.prototype.populateContextMenu): |
| (WI.AuditTreeElement.prototype._updateStatus): Added. |
| (WI.AuditTreeElement.prototype._showRunningSpinner): |
| (WI.AuditTreeElement.prototype._showRunningProgress): |
| (WI.AuditTreeElement.prototype._updateTestGroupDisabled): |
| (WI.AuditTreeElement.prototype._handleTestCaseCompleted): |
| (WI.AuditTreeElement.prototype._handleTestResultCleared): |
| (WI.AuditTreeElement.prototype._handleTestGroupCompleted): |
| (WI.AuditTreeElement.prototype._handleManagerEditingChanged): |
| (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Deleted. |
| (WI.AuditTreeElement.prototype._updateLevel): Deleted. |
| * UserInterface/Views/AuditTreeElement.css: |
| (.tree-outline .item.audit:matches(.test-case, .test-group):not(.unsupported, .manager-active) > .status:hover > img): Added. |
| (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.unsupported, .editing-audits) > .status:not(:hover)): Added. |
| (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status, .tree-outline .item.audit.unsupported + .children .item.audit.unsupported > .status > img): Added. |
| (.tree-outline .item.audit.unsupported:not(.selected) > :matches(.icon, .titles)): Added. |
| (.tree-outline .item.audit.unsupported > .status > img): Added. |
| (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Deleted. |
| (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:not(:hover)): Deleted. |
| (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted. |
| Hide unsupported tests unless in edit mode, where they are greyed out and cannot be enabled. |
| Drive-by: only allow tests to be deleted when in edit mode. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-24 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: CPU Usage Timeline |
| https://bugs.webkit.org/show_bug.cgi?id=193730 |
| <rdar://problem/46797201> |
| |
| Reviewed by Devin Rousso. |
| |
| CPU Usage is gathered in the backend twice a second, the frequency of the |
| ResourceUsageThread in WebCore. The frontend displays cpu usage in a few |
| ways in the Timeline. |
| |
| We use a column chart in the timeline overview to display the frequency and |
| relative distance of samples. This helps show if the samples were close |
| together or far apart, which indicates how meaningful they will be at a |
| particular scale. |
| |
| We use a line chart in the timeline detail view which will be easier to see |
| the changes over a particular time range selection. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| New strings. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| * UserInterface/Protocol/CPUProfilerObserver.js: |
| (WI.CPUProfilerObserver.prototype.trackingStart): |
| (WI.CPUProfilerObserver.prototype.trackingUpdate): |
| (WI.CPUProfilerObserver.prototype.trackingComplete): |
| (WI.CPUProfilerObserver): |
| New files and default registration. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.get CPUProfilerAgent): |
| New Agent. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.availableTimelineTypes): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingStarted): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated): |
| (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted): |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| (WI.TimelineManager.prototype.memoryTrackingStart): Renamed. |
| (WI.TimelineManager.prototype.memoryTrackingUpdate): Renamed. |
| (WI.TimelineManager.prototype.memoryTrackingComplete): Renamed. |
| * UserInterface/Models/CPUInstrument.js: |
| (WI.CPUInstrument): |
| (WI.CPUInstrument.supported): |
| (WI.CPUInstrument.prototype.get timelineRecordType): |
| (WI.CPUInstrument.prototype.startInstrumentation): |
| (WI.CPUInstrument.prototype.stopInstrumentation): |
| * UserInterface/Models/CPUTimelineRecord.js: |
| (WI.CPUTimelineRecord): |
| (WI.CPUTimelineRecord.prototype.get timestamp): |
| (WI.CPUTimelineRecord.prototype.get usage): |
| * UserInterface/Models/Instrument.js: |
| (WI.Instrument.createForTimelineType): |
| * UserInterface/Models/TimelineRecord.js: |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording.prototype.addRecord): |
| Expose a new CPU instrument and timeline. |
| |
| * UserInterface/Views/ColumnChart.js: Added. |
| (WI.ColumnChart): |
| (WI.ColumnChart.prototype.get element): |
| (WI.ColumnChart.prototype.get bars): |
| (WI.ColumnChart.prototype.get size): |
| (WI.ColumnChart.prototype.set size): |
| (WI.ColumnChart.prototype.addBar): |
| (WI.ColumnChart.prototype.clear): |
| (WI.ColumnChart.prototype.needsLayout): |
| (WI.ColumnChart.prototype.updateLayout): |
| View that will draw vertical bars with independent widths. |
| This is meant to be used similiar to WI.LineChart. |
| |
| * UserInterface/Images/CPUInstrument.svg: Added. |
| * UserInterface/Views/Variables.css: |
| (:root): |
| CPU timeline colors and icon. |
| |
| * UserInterface/Views/CPUTimelineOverviewGraph.css: |
| (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,): |
| (.timeline-overview-graph.cpu): |
| (.timeline-overview-graph.cpu > .legend): |
| (body[dir=ltr] .timeline-overview-graph.cpu > .legend): |
| (body[dir=rtl] .timeline-overview-graph.cpu > .legend): |
| (.timeline-overview-graph:nth-child(even) > .legend): |
| (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart): |
| (.timeline-overview-graph.cpu > .bar-chart > svg > g > rect): |
| * UserInterface/Views/CPUTimelineOverviewGraph.js: Added. |
| (WI.CPUTimelineOverviewGraph): |
| (WI.CPUTimelineOverviewGraph.prototype.get height): |
| (WI.CPUTimelineOverviewGraph.prototype.reset): |
| (WI.CPUTimelineOverviewGraph.prototype.layout.xScale): |
| (WI.CPUTimelineOverviewGraph.prototype.layout.yScale): |
| (WI.CPUTimelineOverviewGraph.prototype.layout.yScaleForRecord): |
| (WI.CPUTimelineOverviewGraph.prototype.layout): |
| (WI.CPUTimelineOverviewGraph.prototype._updateLegend): |
| (WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded): |
| * UserInterface/Views/CPUTimelineView.css: |
| (.timeline-view.cpu): |
| (.timeline-view.cpu > .content): |
| (.timeline-view.cpu > .content .subtitle): |
| (.timeline-view.cpu > .content > .details): |
| (.timeline-view.cpu > .content > .details > .timeline-ruler): |
| (body[dir=ltr] .timeline-view.cpu > .content > .details > .timeline-ruler): |
| (body[dir=rtl] .timeline-view.cpu > .content > .details > .timeline-ruler): |
| (.timeline-view.cpu > .content > .details > .subtitle): |
| (.cpu-usage-view .line-chart > svg > path): |
| (.timeline-view.cpu .legend > .row > .swatch.current): |
| * UserInterface/Views/CPUTimelineView.js: Added. |
| (WI.CPUTimelineView): |
| (WI.CPUTimelineView.prototype.shown): |
| (WI.CPUTimelineView.prototype.hidden): |
| (WI.CPUTimelineView.prototype.closed): |
| (WI.CPUTimelineView.prototype.reset): |
| (WI.CPUTimelineView.prototype.get scrollableElements): |
| (WI.CPUTimelineView.prototype.get showsFilterBar): |
| (WI.CPUTimelineView.prototype.layout.layoutView): |
| (WI.CPUTimelineView.prototype.layout.xScale): |
| (WI.CPUTimelineView.prototype.layout.yScale): |
| (WI.CPUTimelineView.prototype.layout): |
| (WI.CPUTimelineView.prototype._cpuTimelineRecordAdded): |
| * UserInterface/Views/CPUUsageView.css: |
| (.cpu-usage-view): |
| (.cpu-usage-view > .details): |
| (body[dir=ltr] .cpu-usage-view > .details): |
| (body[dir=rtl] .cpu-usage-view > .details): |
| (.cpu-usage-view > .graph): |
| (body[dir=rtl] .cpu-usage-view > .graph): |
| * UserInterface/Views/CPUUsageView.js: |
| (WI.CPUUsageView): |
| (WI.CPUUsageView.prototype.get element): |
| (WI.CPUUsageView.prototype.clear): |
| (WI.CPUUsageView.prototype.layoutWithDataPoints): |
| (WI.CPUUsageView.prototype._updateDetails): |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| * UserInterface/Views/TimelineIcons.css: |
| (.cpu-icon .icon): |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WI.TimelineOverviewGraph.createForTimeline): |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.displayNameForTimelineType): |
| (WI.TimelineTabContentView.iconClassNameForTimelineType): |
| (WI.TimelineTabContentView.genericClassNameForTimelineType): |
| (WI.TimelineTabContentView.iconClassNameForRecord): |
| (WI.TimelineTabContentView.displayNameForRecord): |
| Timeline views for CPU usage. |
| |
| * UserInterface/Views/MemoryCategoryView.js: |
| (WI.MemoryCategoryView): |
| * UserInterface/Views/MemoryTimelineView.js: |
| (WI.MemoryTimelineView.createChartContainer): |
| (WI.MemoryTimelineView): |
| (WI.MemoryTimelineView.prototype._clearMaxComparisonLegend): |
| Minor updates to style and comments. |
| |
| 2019-01-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Refactor WI.CSSStyleDeclaration.prototype.update |
| https://bugs.webkit.org/show_bug.cgi?id=193737 |
| |
| Reviewed by Matt Baker. |
| |
| Remove unused event data from the WI.CSSStyleDeclaration.Event.PropertiesChanged event. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration.prototype.update): |
| |
| 2019-01-23 Devin Rousso <drousso@apple.com> |
| |
| WebInspector: Confusingly nested events in the timeline for Mutation Observers |
| https://bugs.webkit.org/show_bug.cgi?id=192884 |
| <rdar://problem/46854178> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| If a microtask event (e.g. `ObserverCallback`) is contained within a `EvaluatedScript` |
| event, move that microtask event to be a sibling of the `EvaluateScript`, subtracting the |
| microtask's time taken from the `EvaluateScript`'s time. If there are no other children |
| after this move, then remove the `EvaluateScript` altogether. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.eventRecorded.fixMicrotaskPlacement): Added. |
| (WI.TimelineManager.prototype.eventRecorded): |
| (WI.TimelineManager.prototype._mergeScriptProfileRecords): |
| |
| 2019-01-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network Waterfall column should redraw when adding/removing new columns |
| https://bugs.webkit.org/show_bug.cgi?id=193696 |
| <rdar://problem/47464149> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TableColumn.js: |
| (WI.TableColumn.prototype.get needsReloadOnResize): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.initialLayout): |
| Mark the waterfall column as sensitive to any resizes. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.showColumn): |
| (WI.Table.prototype.hideColumn): |
| Update column widths and reload any columns that may be sensitive to resizes. |
| |
| 2019-01-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: InspectorInstrumentation::willEvaluateScript should include column number |
| https://bugs.webkit.org/show_bug.cgi?id=116191 |
| <rdar://problem/13905910> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._processRecord): |
| |
| 2019-01-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: expose Audit and Recording versions to the frontend |
| https://bugs.webkit.org/show_bug.cgi?id=193262 |
| <rdar://problem/47130684> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.registerVersion): Added. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.fromPayload): |
| Add Interface version values. |
| |
| 2019-01-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: refactor properties/allProperties/visibleProperties/allVisibleProperties |
| https://bugs.webkit.org/show_bug.cgi?id=193615 |
| |
| Reviewed by Devin Rousso. |
| |
| Remove unused visibleProperties. |
| |
| Rename: |
| - properties to enabledProperties; |
| - allProperties to properties; |
| - allVisibleProperties to visibleProperties. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._prependSemicolonIfNeeded): |
| (WI.CSSProperty): |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.get enabledProperties): |
| (WI.CSSStyleDeclaration.prototype.get properties): |
| (WI.CSSStyleDeclaration.prototype.propertyForName): |
| (WI.CSSStyleDeclaration.prototype.newBlankProperty): |
| (WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter): |
| (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex): |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype._parseStylePropertyPayload): |
| (WI.DOMNodeStyles.prototype._markOverriddenProperties): |
| (WI.DOMNodeStyles.prototype._associateRelatedProperties): |
| (WI.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules): |
| (WI.DOMNodeStyles): |
| * UserInterface/Views/BoxModelDetailsSectionRow.js: |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics): |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces): |
| * UserInterface/Views/ComputedStyleSection.js: |
| (WI.ComputedStyleSection.prototype.get propertiesToRender): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| |
| 2019-01-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network Table appears broken after filter - rows look collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=192730 |
| <rdar://problem/46853158> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype._applyColumnWidthsToColumnsIfNeeded): |
| Affect the filler row like the other applyColumnWidths calls since this |
| now may be the initial call to size visible columns. |
| |
| 2019-01-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: use plural strings for Passed, Failed, and Unsupported |
| https://bugs.webkit.org/show_bug.cgi?id=193675 |
| <rdar://problem/46628680> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.layout): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-18 Jer Noble <jer.noble@apple.com> |
| |
| SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds |
| https://bugs.webkit.org/show_bug.cgi?id=189553 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/SDKVariant.xcconfig: Added. |
| |
| 2019-01-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'resource.finished') |
| https://bugs.webkit.org/show_bug.cgi?id=193589 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.get supportsSave): |
| (WI.NetworkTableContentView.prototype._HARResources): |
| |
| 2019-01-17 Truitt Savell <tsavell@apple.com> |
| |
| Unreviewed, rolling out r240124. |
| |
| This commit broke an internal build. |
| |
| Reverted changeset: |
| |
| "SDK_VARIANT build destinations should be separate from non- |
| SDK_VARIANT builds" |
| https://bugs.webkit.org/show_bug.cgi?id=189553 |
| https://trac.webkit.org/changeset/240124 |
| |
| 2019-01-17 Jer Noble <jer.noble@apple.com> |
| |
| SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds |
| https://bugs.webkit.org/show_bug.cgi?id=189553 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/SDKVariant.xcconfig: Added. |
| |
| 2019-01-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Fix TreeOutline TypeError: this._indexesForSubtree is not a function |
| https://bugs.webkit.org/show_bug.cgi?id=193501 |
| <rdar://problem/47323967> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.removeChildAtIndex): |
| |
| 2019-01-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: create new IDL type for exposing special functionality in test context |
| https://bugs.webkit.org/show_bug.cgi?id=193149 |
| <rdar://problem/46801218> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add `AuditAgent` getters and plumbing. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.get AuditAgent): Added. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.prototype.async run): |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.async start): |
| |
| * .eslintrc: |
| |
| 2019-01-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Event breakpoints: typing uppercase "DOM" doesn't show completions for events that start with "DOM" |
| https://bugs.webkit.org/show_bug.cgi?id=193384 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/EventBreakpointPopover.js: |
| (WI.EventBreakpointPopover.prototype.show): |
| |
| 2019-01-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Event breakpoints: text field and completion popover fonts should match |
| https://bugs.webkit.org/show_bug.cgi?id=193249 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/EventBreakpointPopover.css: |
| (.popover .event-breakpoint-content > .event-type > input): Added. |
| (.popover .event-breakpoint-content > .event-type > input::placeholder): Added. |
| * UserInterface/Views/EventBreakpointPopover.js: |
| (WI.EventBreakpointPopover.prototype.show): |
| (WI.EventBreakpointPopover.prototype._showSuggestionsView): |
| Subtract the <input> border and padding from the bounds position so the <input> text lines |
| up with the `WI.CompletionSuggestionsView` text. |
| |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView): |
| Drive-by: force `dir=ltr` to match the `text-align: left;` CSS styling. |
| |
| 2019-01-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: pressing Down key on empty value field shouldn't discard completion popover |
| https://bugs.webkit.org/show_bug.cgi?id=193098 |
| <rdar://problem/47016036> |
| |
| Reviewed by Devin Rousso. |
| |
| Hide CompletionSuggestionsView when SpreadsheetTextField moves, e.g. by scrolling or resizing the sidebar. |
| Update CompletionSuggestionsView position after pressing Up or Down key, because SpreadsheetTextField may |
| move from wrapping text. |
| |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView.prototype.hide): |
| (WI.CompletionSuggestionsView.prototype.show): |
| (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves): Removed. |
| (WI.CompletionSuggestionsView.prototype.hideWhenElementMoves): Added. |
| (WI.CompletionSuggestionsView.prototype._stopMoveTimer): Added. |
| (WI.CompletionSuggestionsView): |
| |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype.set suggestionHint): |
| (WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion): |
| (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView): |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| (WI.SpreadsheetTextField.prototype._showSuggestionsView): Added. |
| |
| (WI.SpreadsheetTextField.prototype._reAttachSuggestionHint): |
| Drive-by: abstract out repeating code into a private method. |
| |
| 2019-01-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: group titles should vertically align with the first editor |
| https://bugs.webkit.org/show_bug.cgi?id=193391 |
| |
| Reviewed by Dean Jackson. |
| |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings > .settings-view > .container): |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor): Added. |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child > *): Added. |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor select): |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]): |
| |
| 2019-01-11 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION: deleting an audit puts selection in a selected but invisible state |
| https://bugs.webkit.org/show_bug.cgi?id=192917 |
| <rdar://problem/46875285> |
| |
| Reviewed by Devin Rousso. |
| |
| SelectionController should not be notified of removed children until the |
| child items have been removed from the TreeOutline. Doing so at this stage |
| is unsafe, since this method checks `this.selectedTreeElement`, which could |
| return the adjusted index from the SelectionController before anything has |
| actually been removed from the TreeOutline. |
| |
| The number of calls to SelectionController.prototype.didRemoveItems is also |
| reduced somewhat, since we're no longer calling it for every TreeElement. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.removeChildAtIndex): |
| (WI.TreeOutline.prototype.removeChildren): |
| (WI.TreeOutline.prototype._forgetTreeElement): |
| (WI.TreeOutline.prototype._indexesForSubtree): Added. |
| |
| 2019-01-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: allow audits to be enabled/disabled |
| https://bugs.webkit.org/show_bug.cgi?id=192210 |
| <rdar://problem/46423583> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.get editing): Added. |
| (WI.AuditManager.prototype.set editing): Added. |
| (WI.AuditManager.prototype.stop): |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): |
| Since default audits aren't stored, keep a list of disabled default tests in a `WI.Setting`. |
| |
| * UserInterface/Models/AuditTestBase.js: |
| (WI.AuditTestBase): |
| (WI.AuditTestBase.prototype.get disabled): Added. |
| (WI.AuditTestBase.prototype.set disabled): Added. |
| (WI.AuditTestBase.prototype.async start): |
| (WI.AuditTestBase.prototype.stop): |
| (WI.AuditTestBase.toJSON): |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase): |
| (WI.AuditTestCase.async fromPayload): |
| (WI.AuditTestCase.prototype.toJSON): |
| |
| * UserInterface/Models/AuditTestGroup.js: |
| (WI.AuditTestGroup): |
| (WI.AuditTestGroup.async fromPayload): |
| (WI.AuditTestGroup.prototype.get disabled): Added. |
| (WI.AuditTestGroup.prototype.set disabled): Added. |
| (WI.AuditTestGroup.prototype.toJSON): |
| (WI.AuditTestGroup.prototype.async run): |
| (WI.AuditTestGroup.prototype._handleTestDisabledChanged): Added. |
| (WI.AuditTestGroup.prototype._handleTestProgress): |
| Propagate `disabled` changes to all sub-tests, unless the change was caused by one of the |
| sub-tests, in which case we are now in an intermediate state. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel): |
| (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): |
| (WI.AuditNavigationSidebarPanel.prototype.initialLayout): |
| (WI.AuditNavigationSidebarPanel.prototype.hasCustomFilters): Added. |
| (WI.AuditNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): Added. |
| (WI.AuditNavigationSidebarPanel.prototype._addTest): |
| (WI.AuditNavigationSidebarPanel.prototype._addResult): |
| (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState): |
| (WI.AuditNavigationSidebarPanel.prototype._updateEditButtonNavigationItemState): Added. |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged): Added. |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled): |
| (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.AuditNavigationSidebarPanel.prototype._handleEditButtonNavigationItemClicked): Added. |
| * UserInterface/Views/AuditNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.audit > .content): |
| (.sidebar > .panel.navigation.audit > .content > .tree-outline): Added. |
| (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled):active): Added. |
| (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated): Added. |
| (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated:active): Added. |
| (.sidebar > .panel.navigation.audit > .content .edit-audits.disabled): Added. |
| (.finish-editing-audits-placeholder.message-text-view .navigation-item-help .navigation-bar): Added. |
| Leverage custom filters to ensure that disabled audits arent shown when not editing and that |
| result tree elements aren't shown while editing. |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.shown): |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement.prototype.onattach): |
| (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Added. |
| (WI.AuditTreeElement.prototype._updateTestGroupDisabled): Added. |
| (WI.AuditTreeElement.prototype._handleTestDisabledChanged): Added. |
| (WI.AuditTreeElement.prototype._handleManagerEditingChanged): Added. |
| * UserInterface/Views/AuditTreeElement.css: |
| (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:not(:hover)): Added. |
| (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded:not(.editing-audits) > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added. |
| (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)): Deleted. |
| (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted. |
| Prevent selection and running when editing. |
| |
| * UserInterface/Views/TreeOutline.css: |
| (.tree-outline .children.expanded:not([hidden])): Added. |
| (.tree-outline .children.expanded): Deleted. |
| |
| * UserInterface/Base/ObjectStore.js: |
| (WI.ObjectStore._open): |
| Batch operations together to help avoid multiple simultaneous `indexedDB.open` calls. This |
| should also help preserve the order of operations, as once the database is open, operations |
| are executed in the order they were enqueued. |
| |
| (WI.ObjectStore.prototype.async.addObject): |
| Pass a unique `Symbol` to the `toJSON` call on the given object so that the object can save |
| additional values that wouldn't normally be saved. This doesn't conflict with normal usage |
| of `toJSON` (e.g. `JSON.stringify`) because that case also passes in a value: |
| - `undefined`, if it was called directly on the object |
| - the key for this object in the containing object |
| - the index of this object in the containing array |
| In any case, the value can never equal the unique `Symbol`, so it's guaranteed that the code |
| will only run for `WI.ObjectStore` operations. |
| |
| (WI.ObjectStore.prototype.async.clear): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Protocol Logging: log messages as objects if inspector^2 is open |
| https://bugs.webkit.org/show_bug.cgi?id=193284 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| If inspector^2 is closed, stringify all messages. |
| If inspector^2 is open, log each message JSON object without modifying it. |
| |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WI.LoggingProtocolTracer.prototype._processEntry): |
| |
| 2019-01-09 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: clicking on property that soon to be discarded shouldn't start selection |
| https://bugs.webkit.org/show_bug.cgi?id=193218 |
| <rdar://problem/47098303> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| A style property may get removed on blur event, so propertyElement may get removed from the DOM right when mousedown event happens. |
| |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection): |
| |
| 2019-01-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Undo reverts all changes at once |
| https://bugs.webkit.org/show_bug.cgi?id=177676 |
| <rdar://problem/34745031> |
| |
| Reviewed by Devin Rousso. |
| |
| Command-Z used to revert all changes at once because Web Inspector never |
| set any history checkpoints in the style editor. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._handleBlur): |
| |
| 2019-01-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Use prefers-color-scheme instead of prefers-dark-interface |
| https://bugs.webkit.org/show_bug.cgi?id=193265 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/AuditTestContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/BezierEditor.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/BoxModelDetailsSectionRow.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/BreakpointActionView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/BreakpointPopoverController.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ButtonNavigationItem.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ButtonToolbarItem.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CallFrameView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CanvasContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CanvasTabContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CodeMirrorOverrides.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/CompletionSuggestionsView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ComputedStyleSection.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ConsoleMessageView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ConsolePrompt.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DOMTreeOutline.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DataGrid.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DebuggerDashboardView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DefaultDashboardView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DetailsSection.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/DividerNavigationItem.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Editing.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/FindBanner.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/FontResourceContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/FormattedValue.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/HoverMenu.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ImageResourceContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/LogContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| |
| * UserInterface/Views/Main.css: |
| (:root): |
| |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/NetworkDetailView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/NewTabContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ObjectPreviewView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ObjectTreePropertyTreeElement.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/OpenResourceDialog.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ProgressView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/QuickConsole.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/RecordingContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ResourceSecurityContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ResourceSizesContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ScopeBar.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SearchBar.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SettingsTabContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ShaderProgramContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/ShaderProgramTreeElement.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TabBar.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Table.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TextEditor.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TimelineDataGrid.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TimelineIcons.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TimelineOverview.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Toolbar.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/TreeOutline.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/URLBreakpointPopover.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/Variables.css: |
| (@media (prefers-color-scheme: dark)): |
| * UserInterface/Views/WebSocketContentView.css: |
| (@media (prefers-color-scheme: dark)): |
| |
| 2019-01-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: run arrow shouldn't be visible when running tests |
| https://bugs.webkit.org/show_bug.cgi?id=192209 |
| <rdar://problem/46423615> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement.prototype.onattach): |
| (WI.AuditTreeElement.prototype.ondetach): |
| (WI.AuditTreeElement.prototype._updateLevel): |
| (WI.AuditTreeElement.prototype._handleAuditManagerTestScheduled): Added. |
| (WI.AuditTreeElement.prototype._handleAuditManagerTestCompleted): Added. |
| * UserInterface/Views/AuditTreeElement.css: Added. |
| (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Added. |
| (.tree-outline .item.audit.manager-active > .status > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Added. |
| (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img): Deleted. |
| (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted. |
| |
| 2019-01-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: extend XHR breakpoints to work with fetch |
| https://bugs.webkit.org/show_bug.cgi?id=185843 |
| <rdar://problem/40431027> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.supportsURLBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype.get urlBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype.urlBreakpointForURL): Added. |
| (WI.DOMDebuggerManager.prototype.addURLBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints): |
| (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._saveURLBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype._urlBreakpointDisabledStateDidChange): Added. |
| (WI.DOMDebuggerManager.prototype.get xhrBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype.xhrBreakpointForURL): Deleted. |
| (WI.DOMDebuggerManager.prototype.addXHRBreakpoint): Deleted. |
| (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint): Deleted. |
| (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated): Deleted. |
| (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint): Deleted. |
| (WI.DOMDebuggerManager.prototype._resolveXHRBreakpoint): Deleted. |
| (WI.DOMDebuggerManager.prototype._saveXHRBreakpoints): Deleted. |
| (WI.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange): Deleted. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype.willDismissPopover): |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject): |
| |
| * UserInterface/Models/URLBreakpoint.js: Renamed from Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js. |
| * UserInterface/Views/URLBreakpointPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.css. |
| * UserInterface/Views/URLBreakpointPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.js. |
| * UserInterface/Views/URLBreakpointTreeElement.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.css. |
| * UserInterface/Views/URLBreakpointTreeElement.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js. |
| |
| * UserInterface/Base/Setting.js: |
| (WI.Setting.migrateValue): Added. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-07 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: show secure connection details per-request |
| https://bugs.webkit.org/show_bug.cgi?id=191539 |
| <rdar://problem/45979891> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource): |
| (WI.Resource.prototype.get security): Added. |
| (WI.Resource.prototype.updateForResponse): |
| (WI.Resource.prototype.updateWithMetrics): |
| (WI.Resource.prototype.get responseSecurity): Deleted. |
| |
| * UserInterface/Views/ResourceSecurityContentView.js: |
| (WI.ResourceSecurityContentView): |
| (WI.ResourceSecurityContentView.prototype.initialLayout): |
| (WI.ResourceSecurityContentView.prototype.layout): |
| (WI.ResourceSecurityContentView.prototype._refreshConnectionSection): Added. |
| (WI.ResourceSecurityContentView.prototype._refreshCetificateSection): |
| (WI.ResourceSecurityContentView.prototype._handleResourceMetricsDidChange): Added. |
| * UserInterface/Views/ResourceSecurityContentView.css: |
| (body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added. |
| (@media (prefers-dark-interface) body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added. |
| (body[dir] .resource-security > section.certificate > .details): Deleted. |
| (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: "white" isn't recognized as a color keyword |
| https://bugs.webkit.org/show_bug.cgi?id=193173 |
| <rdar://problem/47068595> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Attempt to parse "atom" token types as colors. |
| |
| Display color picker only for color-aware properties. For instance, |
| display it for "color: white" but not for "-apple-pay-button-style: white". |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| (addKeywordsForName): |
| (WI.CSSKeywordCompletions.forProperty): |
| (WI.CSSKeywordCompletions.isColorAwareProperty): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._renderValue): |
| (WI.SpreadsheetStyleProperty.prototype._addColorTokens): |
| |
| 2019-01-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: subclasses of WI.ClusterContentView don't save/restore content views after the initial view |
| https://bugs.webkit.org/show_bug.cgi?id=192451 |
| <rdar://problem/46800958> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/BackForwardEntry.js: |
| (WI.BackForwardEntry.prototype.prepareToHide): |
| * UserInterface/Views/ClusterContentView.js: |
| (WI.ClusterContentView.prototype.get shouldSaveStateOnHide): |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.prototype.get shouldSaveStateOnHide): |
| Allow ClusterContentViews to save its state whenever its hidden, |
| this means it can be properly restored to the last state it had |
| instead of the initial state it was shown with. |
| |
| 2019-01-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: disable breakpoints when running Audit |
| https://bugs.webkit.org/show_bug.cgi?id=193158 |
| <rdar://problem/47057083> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype._startDisablingBreakpointsTemporarily): |
| (WI.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily): |
| (WI.DebuggerManager.prototype._handleAuditManagerTestScheduled): Added. |
| (WI.DebuggerManager.prototype._handleAuditManagerTestCompleted): Added. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart): |
| (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped): |
| (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestScheduled): Added. |
| (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestCompleted): Added. |
| (WI.DebuggerSidebarPanel.prototype._updateBreakpointsDisabledBanner): |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (.sidebar > .panel.navigation.debugger .warning-banner + .warning-banner): Added. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| Move `WI.auditManager` higher in the managers list so that it can be used in |
| `WI.DebuggerManager`'s constructor. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add a Setting Toggle for Source Maps |
| https://bugs.webkit.org/show_bug.cgi?id=193148 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.downloadSourceMap): |
| Don't download source maps if the setting is disabled. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| Settings toggle for source maps. Enabled by default. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2019-01-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Include `globalThis` in default JavaScript completions |
| https://bugs.webkit.org/show_bug.cgi?id=193147 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/CodeMirrorCompletionController.js: |
| Add `globalThis` which is a new global value. |
| |
| 2019-01-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: conic-gradient color picker doesn't accurately show color when saturation value is not 100% |
| https://bugs.webkit.org/show_bug.cgi?id=192729 |
| <rdar://problem/46746815> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Rework `WI.ColorWheel` to use similar canvas drawing logic as `WI.LegacyColorWheel` so that |
| it's able to adjust the saturation value as the pixels gets closer to the center. |
| |
| * UserInterface/Models/Color.js: |
| (WI.Color.rgb2hsl): Added. |
| (WI.Color.hsl2rgb): Added. |
| (WI.Color.cmyk2rgb): |
| (WI.Color.prototype.isKeyword): |
| (WI.Color.prototype._toRGBString): |
| (WI.Color.prototype._toRGBAString): |
| (WI.Color.prototype._toHSLString): |
| (WI.Color.prototype._toHSLAString): |
| (WI.Color.prototype._rgbaToHSLA): |
| (WI.Color.prototype._hslaToRGBA): |
| (WI.Color.rgb2hsv): Deleted. |
| (WI.Color.hsv2rgb): Deleted. |
| (WI.Color.prototype._rgbToHSL): Deleted. |
| (WI.Color.prototype._hslToRGB): Deleted. |
| Adjust the conversion functions of `WI.Color` to be more accurate. |
| |
| * UserInterface/Views/ColorWheel.js: |
| (WI.ColorWheel): |
| (WI.ColorWheel.prototype.set dimension): |
| (WI.ColorWheel.prototype.set brightness): |
| (WI.ColorWheel.prototype.get tintedColor): |
| (WI.ColorWheel.prototype.set tintedColor): |
| (WI.ColorWheel.prototype._updateColorForMouseEvent): |
| (WI.ColorWheel.prototype._updateCanvas): Added. |
| (WI.ColorWheel.prototype._updateGradient): Deleted. |
| * UserInterface/Views/ColorWheel.css: |
| (.color-wheel > canvas): Added. |
| (.color-wheel > .gradient): Deleted. |
| |
| * UserInterface/Views/ColorPicker.js: |
| (WI.ColorPicker): |
| (WI.ColorPicker.prototype.set color): |
| (WI.ColorPicker.prototype.sliderValueDidChange): |
| (WI.ColorPicker.prototype._updateSliders): |
| (WI.ColorPicker.prototype._showColorComponentInputs): |
| (WI.ColorPicker.supportsConicGradient): Deleted. |
| |
| * UserInterface/Main.html: |
| |
| * UserInterface/Views/LegacyColorWheel.js: Removed. |
| |
| 2019-01-02 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: selection lost when inspector is blurred |
| https://bugs.webkit.org/show_bug.cgi?id=192124 |
| <rdar://problem/46800965> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (body:matches(.window-docked-inactive, .window-inactive) .spreadsheet-style-declaration-editor .property.selected): |
| Selection should be gray when Web Inspector window isn't focused. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| |
| 2019-01-02 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: it shouldn't be possible to delete read-only properties |
| https://bugs.webkit.org/show_bug.cgi?id=193099 |
| <rdar://problem/47016335> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| Drive-by: Forward Delete should work the same way as Delete (Backspace). |
| |
| 2019-01-02 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Implement `queryObjects` Command Line API |
| https://bugs.webkit.org/show_bug.cgi?id=176766 |
| <rdar://problem/34890689> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames): |
| Add `queryObjects` to the list of command line functions. |
| |
| 2018-12-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles Redesign: remove unused CSS style icons |
| https://bugs.webkit.org/show_bug.cgi?id=192999 |
| <rdar://problem/46912094> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/StyleRuleIcons.css: Removed. |
| * UserInterface/Images/StyleRule.svg: Removed. |
| * UserInterface/Images/StyleRuleInheritedElement.svg: Removed. |
| * UserInterface/Images/StyleRulePseudoElement.svg: Removed. |
| |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: |
| |
| 2018-12-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: editing focus lost when inspector is blurred |
| https://bugs.webkit.org/show_bug.cgi?id=192123 |
| <rdar://problem/46800966> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetSelectorField.js: |
| (WI.SpreadsheetSelectorField.prototype._handleBlur): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._handleBlur): |
| |
| 2018-12-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: experimental setting editors are misaligned in other locales |
| https://bugs.webkit.org/show_bug.cgi?id=192971 |
| <rdar://problem/46718451> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings > .settings-view > .container): |
| (.content-view.settings > .settings-view > .container > .title): |
| |
| 2018-12-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: update scroll position when revealing a virtualized WI.DataGridNode |
| https://bugs.webkit.org/show_bug.cgi?id=192992 |
| <rdar://problem/46886427> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When `reveal`ing a `WI.DataGridNode`, if it is not currently in the DOM tree (e.g. it's been |
| virtualized by it's owner `WI.DataGrid`), we need to scroll to it's position so that it gets |
| added to the DOM tree before it can be revealed/selected. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype.layout): |
| (WI.DataGrid.prototype.updateVisibleRows): |
| (WI.DataGrid.prototype._updateVisibleRows): Deleted. |
| |
| * UserInterface/Views/DataGridNode.js: |
| (WI.DataGridNode.prototype.reveal): |
| |
| 2018-12-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Type profiler popovers have black text on dark background |
| https://bugs.webkit.org/show_bug.cgi?id=192916 |
| <rdar://problem/46863518> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (.popover .debugger-popover-content > .body): |
| * UserInterface/Views/TypeTreeElement.css: |
| (.item.type-tree-element.prototype): |
| (.item.type-tree-element.prototype:hover,): |
| * UserInterface/Views/TypeTreeView.css: |
| (.type-tree): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2018-12-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Pressing Esc when editing name/value should select entire property |
| https://bugs.webkit.org/show_bug.cgi?id=192919 |
| |
| Reviewed by Devin Rousso. |
| |
| - Esc still hides the completion popover. |
| - Esc still discards changes. |
| - When there's no completion popover, Esc selects outer scope. |
| I.e., it goes from editing name/value to selecting the entire property. |
| - Pressing Esc for newly added properties discards those properties. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyDidPressEsc): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidPressEsc): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._discardChange): |
| (WI.SpreadsheetTextField.prototype._handleKeyDown): |
| |
| 2018-12-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime) |
| https://bugs.webkit.org/show_bug.cgi?id=192959 |
| <rdar://problem/46863411> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked): |
| (WI.NetworkTableContentView.prototype._updateExportButton): |
| (WI.NetworkTableContentView.prototype._canExportHAR): |
| Disallow HAR export if we don't have load data, such as the requestSentDate for |
| the main resource or sub-resources. |
| |
| (WI.NetworkTableContentView.prototype._HARResources): |
| Only export resources that have load data. |
| |
| 2018-12-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Autoformat doesn't work on icloud.com (javascript-packed.js) |
| https://bugs.webkit.org/show_bug.cgi?id=192946 |
| <rdar://problem/42546126> |
| |
| Rubber-stamped by Devin Rousso. |
| |
| * UserInterface/Base/Utilities.js: |
| (whitespaceRatio): |
| (isTextLikelyMinified): |
| Check the first 2500 and the last 2500 characters whitespace ratio. |
| If either is below 20% then treat as minified. |
| |
| 2018-12-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ITMLKit Inspector: Elements tab does not show DOM Tree |
| https://bugs.webkit.org/show_bug.cgi?id=192910 |
| <rdar://problem/46680585> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.Connection.prototype._dispatchEvent): |
| Better logging for errors. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Controllers/AppController.js: |
| (WI.AppController.prototype.activateExtraDomains): |
| Let Targets get a chance to activate extra domains. |
| Perform a little more work in these cases. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target): |
| (WI.Target.prototype.activateExtraDomain): |
| Expose agents for domains that are active. |
| Expose agents for extra domains when they are activated. |
| |
| 2018-12-20 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ITMLKit Inspector: Computed Style Box Model section throws exceptions |
| https://bugs.webkit.org/show_bug.cgi?id=192911 |
| <rdar://problem/46861112> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/BoxModelDetailsSectionRow.js: |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement): |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement): |
| (WI.BoxModelDetailsSectionRow.prototype._updateMetrics): |
| ITMLKit doesn't always provide a display/position/width/height etc properties. |
| Protect against this, and just show an empty message in the box model section |
| if those properties do not exist. |
| |
| 2018-12-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: UIString should take an optional key and description to aid localization |
| https://bugs.webkit.org/show_bug.cgi?id=153962 |
| <rdar://problem/24542505> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/LoadLocalizedStrings.js: |
| (WI.UIString): |
| |
| * UserInterface/Test/Test.js: |
| (WI.UIString): |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.initialLayout): |
| |
| 2018-12-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audits: don't cache default audits |
| https://bugs.webkit.org/show_bug.cgi?id=192918 |
| <rdar://problem/46626543> |
| |
| Reviewed by Brian Burg. |
| |
| Instead of adding the default audits to the "audits" `WI.ObjectStore`, which preserves them |
| across WebInspector sessions, load them every time WebInspector is opened (unless there are |
| existing audits) so that the localized strings are able to respond to locale changes. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.removeTest): |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): |
| |
| 2018-12-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Dark Mode: unreadable background color for tables containing object previews |
| https://bugs.webkit.org/show_bug.cgi?id=192887 |
| <rdar://problem/46855270> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/LogContentView.css: |
| (.console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added. |
| (@media (prefers-dark-interface) .console-item .data-grid tr.selected): Added. |
| (@media (prefers-dark-interface) .console-messages:focus .console-item.selected .data-grid tr.selected): Added. |
| (@media (prefers-dark-interface) .console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added. |
| |
| * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css: |
| (.content-view.indexed-database-object-store > .data-grid tr.selected): |
| (.content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added. |
| (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid tr.selected): Added. |
| (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added. |
| (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected td:not(:last-child)): Added. |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: fix descriptions for default tests |
| https://bugs.webkit.org/show_bug.cgi?id=192764 |
| <rdar://problem/46729437> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: "E" icon on debugger dashboard is too close to current function name |
| https://bugs.webkit.org/show_bug.cgi?id=192915 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerDashboardView.css: |
| (.dashboard.debugger > .location): |
| (body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)): |
| (body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)): |
| (.dashboard.debugger > .location .function-icon): Deleted. |
| (body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted. |
| (body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted. |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered |
| https://bugs.webkit.org/show_bug.cgi?id=192097 |
| <rdar://problem/46318421> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ThreadTreeElement.css: |
| (.tree-outline > .item.thread .status-button.resume): |
| (.tree-outline > .item.thread .status-button.resume:active): |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses') |
| https://bugs.webkit.org/show_bug.cgi?id=192783 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes): |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection |
| https://bugs.webkit.org/show_bug.cgi?id=192773 |
| <rdar://problem/46782446> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._recordSelected): |
| The Frames timeline uses `frameIndex` instead of `startTime`/`endTime`, so when trying to |
| ensure that the selected record is within the filtered range, use `frameIndex` instead. |
| The associated `WI.TimelineRuler` will already be using an index-based approach for |
| selection, so this will match. |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: the recording auto-capture input shouldn't start focused |
| https://bugs.webkit.org/show_bug.cgi?id=192454 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): |
| (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged): |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color |
| https://bugs.webkit.org/show_bug.cgi?id=192784 |
| <rdar://problem/46801028> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| |
| 2018-12-19 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element |
| https://bugs.webkit.org/show_bug.cgi?id=192871 |
| <rdar://problem/46849060> |
| |
| Reviewed by Devin Rousso. |
| |
| Undoing a DOM node removal reinserts the node into the DOMTreeOutline. |
| When the reinserted node precedes the selected node in the tree, the |
| SelectionController should update `_lastSelectedIndex`. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.didInsertItem): |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: provide localization support for % pass display |
| https://bugs.webkit.org/show_bug.cgi?id=192870 |
| <rdar://problem/46779245> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.initialLayout): |
| (WI.AuditTestGroupContentView.prototype.layout): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group > header > .percentage-pass): |
| (.content-view.audit-test-group > header > .percentage-pass > span): Added. |
| (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added. |
| (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added. |
| (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Computed: make UI more usable when the panel is narrow |
| https://bugs.webkit.org/show_bug.cgi?id=192578 |
| <rdar://problem/46615753> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ComputedStyleSection.css: |
| (.computed-style-section .computed-property-item .property-traces): |
| (.computed-style-section .computed-property-item.expanded .disclosure-button): |
| (.computed-style-section .computed-property-item .property-trace-item): |
| (.computed-style-section .computed-property-item .property-trace-item::before): |
| (.computed-style-section .computed-property-item .property): |
| (.computed-style-section .computed-property-item .property-trace-item .selector): |
| Allow CSS property values and selectors to take more than one line. |
| |
| (.computed-style-section .property-trace-item .property .name,): |
| * UserInterface/Views/ComputedStyleSection.js: |
| (WI.ComputedStyleSection.prototype._createTrace): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.update): |
| |
| 2018-12-18 Simon Fraser <simon.fraser@apple.com> |
| |
| Web Inspector: Timelines: correctly label Intersection Observer callbacks |
| https://bugs.webkit.org/show_bug.cgi?id=192669 |
| <rdar://problem/46702490> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls |
| to Intersection Observer, Performance Observer and Mutation Observer callbacks so |
| that they get correctly labeled in the Inspector timeline. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._processRecord): |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord.EventType.displayName): |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.iconClassNameForRecord): |
| |
| 2018-12-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small |
| https://bugs.webkit.org/show_bug.cgi?id=192868 |
| <rdar://problem/46780400> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Main.css: |
| (.message-text-view): |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive |
| https://bugs.webkit.org/show_bug.cgi?id=190542 |
| <rdar://problem/45238712> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CodeMirrorOverrides.css: |
| (.CodeMirror .CodeMirror-selected): |
| |
| 2018-12-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode |
| https://bugs.webkit.org/show_bug.cgi?id=192845 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DataGrid.css: |
| (@media (prefers-dark-interface)): |
| (.data-grid th.sortable:active): |
| Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray. |
| |
| (.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after): |
| Invert colors of the arrow glyph. |
| |
| 2018-12-18 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Layers: increase default column width for other localizations |
| https://bugs.webkit.org/show_bug.cgi?id=192812 |
| <rdar://problem/46628625> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/LayerDetailsSidebarPanel.js: |
| (WI.LayerDetailsSidebarPanel.prototype._buildDataGrid): |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| (WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection): |
| |
| 2018-12-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: m3u8 content not shown, it should be text |
| https://bugs.webkit.org/show_bug.cgi?id=192731 |
| <rdar://problem/46747728> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.shouldTreatMIMETypeAsText): |
| Support m3u8/m3u files as text. |
| |
| 2018-12-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: path view is misaligned |
| https://bugs.webkit.org/show_bug.cgi?id=192761 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/RecordingContentView.css: |
| (.content-view:not(.tab).recording :matches(img, canvas)): |
| (.content-view:not(.tab).recording canvas.path): |
| |
| 2018-12-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: add plural result strings |
| https://bugs.webkit.org/show_bug.cgi?id=192769 |
| <rdar://problem/46628680> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/AuditTestContentView.js: |
| (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder): |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| (WI.AuditTestGroupContentView.prototype.layout): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: add singular "space" UIString |
| https://bugs.webkit.org/show_bug.cgi?id=192766 |
| <rdar://problem/46776948> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/SettingEditor.js: |
| (WI.SettingEditor): |
| (WI.SettingEditor.prototype.get label): |
| (WI.SettingEditor.prototype.set label): Added. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting): Added. |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting.updateLabel): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: toggling selected properties may cause data corruption |
| https://bugs.webkit.org/show_bug.cgi?id=192396 |
| <rdar://problem/46478383> |
| |
| Reviewed by Devin Rousso. |
| |
| Uncommenting a property after a commented out property used to insert an unnecessary semicolon, |
| and not updating ranges of the following properties. |
| |
| For example: |
| |
| /* color: red; */ |
| /* font-size: 12px */ |
| |
| Uncommenting `font-size` would result in something like this: |
| |
| /* color: red; */; font-size: 12px |
| ^ |
| unnecessary semicolon |
| |
| Now the semicolon doesn't get inserted and the white space is preserved better: |
| |
| /* color: red; */ |
| font-size: 12px |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| (WI.CSSProperty.prototype._appendSemicolonIfNeeded): Removed. |
| (WI.CSSProperty.prototype._prependSemicolonIfNeeded): Added. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.remove): |
| (WI.SpreadsheetStyleProperty.prototype.update): |
| (WI.SpreadsheetStyleProperty.prototype._handleNameChange): |
| (WI.SpreadsheetStyleProperty.prototype._handleValueChange): |
| Style declaration should be locked while editing. Add asserts to ensure this. |
| |
| 2018-12-14 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238599): Uncaught Exception: TypeError: null is not an object (evaluating 'treeElement.listItemElement.classList') |
| https://bugs.webkit.org/show_bug.cgi?id=192090 |
| <rdar://problem/46318614> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| Check that `listItemElement` is valid before accessing it to update class |
| names. The selection can change before the TreeElement has been attached. |
| |
| 2018-12-14 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Cookies view should use model objects instead of raw payload data |
| https://bugs.webkit.org/show_bug.cgi?id=189533 |
| <rdar://problem/44364183> |
| |
| Reviewed by Joseph Pecoraro and Devin Rousso. |
| |
| * UserInterface/Models/Cookie.js: |
| (WI.Cookie): |
| (WI.Cookie.fromPayload): |
| (WI.Cookie.parseSetCookieResponseHeader): |
| (WI.Cookie.prototype.get type): |
| (WI.Cookie.prototype.get name): |
| (WI.Cookie.prototype.get value): |
| (WI.Cookie.prototype.get header): |
| (WI.Cookie.prototype.get expires): |
| (WI.Cookie.prototype.get maxAge): |
| (WI.Cookie.prototype.get path): |
| (WI.Cookie.prototype.get domain): |
| (WI.Cookie.prototype.get secure): |
| (WI.Cookie.prototype.get httpOnly): |
| (WI.Cookie.prototype.get sameSite): |
| (WI.Cookie.prototype.get size): |
| (WI.Cookie.prototype.get url): |
| (WI.Cookie.prototype.expirationDate): |
| Cleanup Cookie object; add pubic getters for data, `url` property, |
| static `fromPayload` method, and calculate `_size` if missing. |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype.tableDidRemoveRows): |
| (WI.CookieStorageContentView.prototype._reloadCookies): |
| Create Cookie objects from the payload instead of using raw payload data. |
| |
| 2018-12-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove DOM.BackendNodeId and associated commands/events |
| https://bugs.webkit.org/show_bug.cgi?id=192478 |
| |
| Reviewed by Matt Baker. |
| |
| * Versions/Inspector-iOS-8.0.json: |
| * Versions/Inspector-iOS-9.0.json: |
| * Versions/Inspector-iOS-9.3.json: |
| * Versions/Inspector-iOS-10.0.json: |
| * Versions/Inspector-iOS-10.3.json: |
| * Versions/Inspector-iOS-11.0.json: |
| * Versions/Inspector-iOS-11.3.json: |
| * Versions/Inspector-iOS-12.0.json: |
| * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: |
| |
| 2018-12-13 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: experimental settings reload button disappears after changing more than one setting |
| https://bugs.webkit.org/show_bug.cgi?id=192645 |
| <rdar://problem/46626204> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange): |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-12-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238602): Elements: deleting multiple DOM nodes doesn't select the nearest node after deletion |
| https://bugs.webkit.org/show_bug.cgi?id=192116 |
| <rdar://problem/46344339> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.removeSelectedItems): |
| Finding a new index to select should go through the delegate instead of |
| naively advancing the index. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._populateNodeContextMenu): |
| (WI.DOMTreeElement.prototype.ondelete): Deleted. |
| The menu item for removing the DOM node is now managed by the parent |
| DOMTreeOutline, since its UI and behavior now depend on whether there |
| are multiple elements selected. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.populateContextMenu): |
| (WI.DOMTreeOutline.prototype.ondelete.level): |
| (WI.DOMTreeOutline.prototype.ondelete): |
| Implement `ondelete` to remove selected DOM nodes using the delete and |
| backspace keys. Also used by the DOMTreeOutline's context menu handler. |
| |
| 2018-12-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table selection becomes corrupted when deleting selected cookies |
| https://bugs.webkit.org/show_bug.cgi?id=192388 |
| <rdar://problem/46472364> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController): |
| (WI.SelectionController.prototype.didRemoveItems): |
| (WI.SelectionController.prototype._updateSelectedItems): |
| (WI.SelectionController.prototype.didRemoveItem): Deleted. |
| Replace `didRemoveItem` with a method taking an IndexSet. Calling the |
| single-index version while iterating over multiple rows in ascending |
| order is unsafe, a detail best left to the SelectionController. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.removeRow): |
| (WI.Table.prototype._removeRows): |
| Notify SelectionController of removed rows. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.insertChild): |
| (WI.TreeOutline.prototype.removeChildAtIndex): |
| Remove the child from the element's `children` after calling `_forgetTreeElement`, |
| which needs to calculate the child's index to pass to the SelectionController. |
| |
| (WI.TreeOutline.prototype.removeChildren): |
| Remove child items during iteration so that `children` doesn't contain |
| detached TreeElements while calling `_forgetTreeElement`. |
| |
| (WI.TreeOutline.prototype._rememberTreeElement): |
| (WI.TreeOutline.prototype._forgetTreeElement): |
| |
| 2018-12-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r238599): unable to select specific timeline |
| https://bugs.webkit.org/show_bug.cgi?id=192443 |
| <rdar://problem/46608087> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When determining the trailing horizontal edge for TreeElement mouse |
| events, TreeOutline should not assume that its containing DOM element |
| is only as wide as its <ol> element. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.treeElementFromEvent): |
| |
| 2018-12-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Move TreeOutlineGroup coordination out of TreeElement |
| https://bugs.webkit.org/show_bug.cgi?id=192487 |
| <rdar://problem/46543431> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.select): |
| (WI.TreeElement.prototype.deselect): |
| |
| * UserInterface/Views/TreeOutlineGroup.js: |
| (WI.TreeOutlineGroup): |
| (WI.TreeOutlineGroup.prototype.itemAdded): |
| (WI.TreeOutlineGroup.prototype.itemRemoved): |
| (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections): |
| (WI.TreeOutlineGroup.prototype._treeOutlineSelectionDidChange): |
| (WI.TreeOutlineGroup.groupForTreeOutline): Deleted. |
| (WI.TreeOutlineGroup.prototype.didSelectTreeElement): Deleted. |
| make the group responsible for listening to selection changes from the |
| TreeOutlines it manages, and synchronizing the selection between them. |
| |
| 2018-12-10 Dean Jackson <dino@apple.com> |
| |
| Use text/javascript as recommended by the HTML specification |
| https://bugs.webkit.org/show_bug.cgi?id=192525 |
| <rdar://problem/46569636> |
| |
| Reviewed by Jon Lee. |
| |
| The HTML specification says we should use text/javascript for |
| JavaScript files: |
| https://html.spec.whatwg.org/multipage/scripting.html#scriptingLanguages:javascript-mime-type |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.mimeTypeForFileExtension): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype._attemptToDetermineMIMEType): |
| |
| 2018-12-06 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238602): Elements: collapsing a DOM node with the left arrow doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=192353 |
| <rdar://problem/46455019> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.deselect): |
| Don't early return when the element is not the selected tree element. |
| This condition no longer holds now that TreeOutline supports multiple selection. |
| |
| 2018-12-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false |
| https://bugs.webkit.org/show_bug.cgi?id=192390 |
| <rdar://problem/46473624> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.selectItem): |
| |
| 2018-12-04 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Add style editing debug mode |
| https://bugs.webkit.org/show_bug.cgi?id=192282 |
| <rdar://problem/46399176> |
| |
| Reviewed by Matt Baker. |
| |
| Introduce a style editing debug mode to help to troubleshoot complex bugs in the style editor. |
| |
| - Log CSS changes; |
| - Display red border for locked style declarations. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype._updateOwnerStyleText): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor.debug-style-locked::after): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateDebugLockStatus): |
| |
| 2018-12-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238602): Elements: changing selection no longer highlights the selected node |
| https://bugs.webkit.org/show_bug.cgi?id=192354 |
| <rdar://problem/46444438> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._treeKeyDown): |
| (WI.TreeOutline.prototype._handleMouseDown): |
| |
| 2018-12-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION(r238330): Timeline auto-capture does not work after page transition |
| https://bugs.webkit.org/show_bug.cgi?id=192248 |
| <rdar://problem/46390199> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| (WI.transitionPageTarget): |
| Let the TimelineManager perform work on page transitions. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype.initializeTarget): |
| Initialize the autocapture state of the target. |
| |
| (WI.TimelineManager.prototype.transitionPageTarget): |
| When transitioning pages perform a legacy (frontend based) timeline capture. |
| |
| 2018-12-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: $0 is shown for all selected elements |
| https://bugs.webkit.org/show_bug.cgi?id=192119 |
| <rdar://problem/46327554> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ContentBrowserTabContentView.js: |
| (WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.layout): |
| (WI.DOMTreeContentView.prototype._domTreeSelectionDidChange): |
| Update the selected DOM node using the TreeOutline's selection change |
| event, instead of in `onselect`, which wasn't always called. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.onselect): Deleted. |
| (WI.DOMTreeElement.prototype.ondeselect): Deleted. |
| Eliminate `onselect` and `ondeselect`. TreeOutline clients should use |
| the TreeOutline.Event.SelectedDidChange event instead. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom li.last-selected > span::after): |
| (.tree-outline.dom:focus li.last-selected > span::after): |
| (.tree-outline.dom li.selected > span::after): Deleted. |
| (.tree-outline.dom:focus li.selected > span::after): Deleted. |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.updateSelection): Deleted. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange): |
| * UserInterface/Views/FolderizedTreeElement.js: |
| (WI.FolderizedTreeElement.prototype._addTreeElement): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement): |
| (WI.NavigationSidebarPanel.prototype._treeElementWasFiltered): |
| (WI.NavigationSidebarPanel): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._populateResourceTreeOutline): |
| (WI.OpenResourceDialog.prototype._handleKeydownEvent): |
| * UserInterface/Views/SourceCodeTreeElement.js: |
| (WI.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange): |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.select): |
| (WI.TreeElement.prototype.revealAndSelect): |
| (WI.TreeElement.prototype.deselect): |
| Remove `suppressOnDeselect` and rename `suppressOnSelect` to `suppressNotification`. |
| Now that `ondeselect` has been removed `suppressOnDeselect` is no longer |
| meaningful, as TreeOutline generates a single `SelectedDidChange` event |
| when the selected item changes. In the case of `revealAndSelect`, both |
| arguments had the same value. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| Add a unique class name to the last selected TreeElement to distinguish |
| it from other selected elements. |
| |
| 2018-12-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: ⌘-A should select all visible nodes |
| https://bugs.webkit.org/show_bug.cgi?id=192120 |
| <rdar://problem/46344435> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._treeKeyDown): |
| Remove an early return, allowing `WI.SelectionController` to handle ⌘-A |
| and select all items. |
| |
| 2018-12-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: tests should support async operations |
| https://bugs.webkit.org/show_bug.cgi?id=192171 |
| <rdar://problem/46423562> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager.supportsAwaitPromise): Added. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty.addErrorForValueType): Deleted. |
| (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty): Deleted. |
| (WI.AuditTestCase.prototype.async run.async parseResponse.async resultArrayForEach): Deleted. |
| (WI.AuditTestCase.prototype.async run.async parseResponse): Added. |
| (WI.AuditTestCase.prototype.async run): |
| (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Deleted. |
| (WI.AuditTestCase.prototype.async run.checkResultProperty): Deleted. |
| (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Deleted. |
| |
| * UserInterface/Models/AuditTestCaseResult.js: |
| (WI.AuditTestCaseResult.async fromPayload): |
| (WI.AuditTestCaseResult.prototype.toJSON): |
| |
| * UserInterface/Views/AuditTestCaseContentView.js: |
| (WI.AuditTestCaseContentView.prototype.layout): |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: save the expanded state of test groups |
| https://bugs.webkit.org/show_bug.cgi?id=192346 |
| <rdar://problem/46440704> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement): |
| (WI.AuditTreeElement.prototype.onattach): |
| (WI.AuditTreeElement.prototype.onexpand): Added. |
| (WI.AuditTreeElement.prototype.oncollapse): Added. |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: sidebar briefly shows "No Filter Results" before populating default audits |
| https://bugs.webkit.org/show_bug.cgi?id=192341 |
| <rdar://problem/46436550> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.initialLayout): |
| (WI.AuditNavigationSidebarPanel.prototype._addTest): |
| (WI.AuditNavigationSidebarPanel.prototype._addResult): |
| (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Deleted. |
| Delay the construction of the "Results" folder until it's needed, since adding a hidden |
| `WI.TreeElement` will cause the placeholder to appear. |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: navigating while tests are running should stop and clear all results |
| https://bugs.webkit.org/show_bug.cgi?id=192317 |
| <rdar://problem/46435222> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.async start): |
| (WI.AuditManager.prototype._handleFrameMainResourceDidChange): |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.initialLayout): |
| Drive-by: pass the index of the saved result. |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: "Add Default Audits" shown when there are no filter results |
| https://bugs.webkit.org/show_bug.cgi?id=192105 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel): |
| (WI.NavigationSidebarPanel.prototype.get hasActiveFilters): Added. |
| (WI.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements): |
| (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype.updateFilter): |
| (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults): |
| (WI.NavigationSidebarPanel.prototype._filterDidChange): |
| (WI.NavigationSidebarPanel.prototype._updateFilter): Deleted. |
| (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): Deleted. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): |
| Drive-by: change capitalization for consistency with other navigation sidebars. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: add singular localized string for "Record first %s frames" |
| https://bugs.webkit.org/show_bug.cgi?id=192189 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): Added. |
| (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput): |
| (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged): |
| (WI.CanvasOverviewContentView.prototype.initialLayout): Deleted. |
| Drive-by: update the auto-capture navigation item when the view is first created so there is |
| no flashing of in the navigation bar (before `initialLayout` is called). |
| |
| * UserInterface/Views/CheckboxNavigationItem.js: |
| (WI.CheckboxNavigationItem): |
| (WI.CheckboxNavigationItem.prototype.set label): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-12-03 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238599): Multiple Selection: restoring selection when opening WebInspector puts the TreeElement into a permanent selected state |
| https://bugs.webkit.org/show_bug.cgi?id=192091 |
| <rdar://problem/46321795> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.didInsertItem): |
| Fix a bug where selected indexes were overwritten by the inserted index. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.insertChild): |
| Update the SelectionController with the newly inserted index before |
| attaching the TreeElement. Attaching the TreeElement can cause it to |
| become selected, which would add the index to the SelectionController, |
| only to have it immediately incremented by the call to `didInsertItem`. |
| Additionally, change `insertionIndex` to be the index of the inserted |
| item instead of the inserted item's previous sibling. |
| |
| (WI.TreeOutline.prototype._rememberTreeElement): |
| (WI.TreeOutline.prototype._forgetTreeElement): |
| (WI.TreeOutline.prototype._indexOfTreeElement.previousElement): Deleted. |
| Eliminate TreeElement index caching, which could become stale and cause |
| the wrong index to be calculated. Additionally, instead of walking up the |
| parent chain to determine the index, start at the root and use existing |
| method `traverseNextTreeElement`. |
| |
| 2018-12-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: test tree elements should start out collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=192107 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement.prototype.onattach): |
| |
| 2018-12-03 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: can't select properties of read-only rules |
| https://bugs.webkit.org/show_bug.cgi?id=192266 |
| |
| Reviewed by Devin Rousso. |
| |
| Implement multiple properties selection for read-only rules (such as User Agent Stylesheets) |
| in the Styles panel. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| Keep selection on layout. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter): |
| SpreadsheetCSSStyleDeclarationEditor is used by ComputedStyleDetailsPanel, which doesn't have: |
| - spreadsheetCSSStyleDeclarationEditorPropertyBlur |
| - spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.startEditingName): |
| (WI.SpreadsheetStyleProperty.prototype.startEditingValue): |
| |
| 2018-11-30 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: resource combining should be more robust against missing WebKitAdditions |
| https://bugs.webkit.org/show_bug.cgi?id=192255 |
| <rdar://problem/46042879> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| (combineOrStripResourcesForWebKitAdditions): |
| |
| 2018-11-30 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Jumping from Computed to Styles should select property |
| https://bugs.webkit.org/show_bug.cgi?id=192198 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property.highlighted): Deleted. |
| (@keyframes style-property-highlight): Deleted. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty): |
| Remove unnecessary `__propertyView` property. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.detached): |
| (WI.SpreadsheetStyleProperty.prototype.highlight): Deleted. |
| |
| 2018-11-30 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r238599): Multiple Selection: selecting a breakpoint will change the selection to it's parent on the first click |
| https://bugs.webkit.org/show_bug.cgi?id=192093 |
| <rdar://problem/46318466> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.select): |
| TreeElement shouldn't manage the TreeOutline's selection barrier. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.get processingSelectionChange): |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| (WI.TreeOutline.prototype.selectTreeElementInternal): |
| The selection re-entry barrier `processingSelectionChange` should be |
| managed internally by TreeOutline, and exposed as a read-only property. |
| Fix a bug where the barrier was cleared before dispatching the change |
| notification, which can cause re-entry as a side effect. |
| |
| 2018-11-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Settings: reload button needs horizontal spacing |
| https://bugs.webkit.org/show_bug.cgi?id=192231 |
| <rdar://problem/46274363> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SettingsTabContentView.css: |
| (.content-view.settings > .settings-view > .container button): |
| (.content-view.settings > .settings-view > .container > .title): |
| (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): |
| (body[dir=ltr] .content-view.settings > .settings-view > .container > .title): Deleted. |
| (body[dir=rtl] .content-view.settings > .settings-view > .container > .title): Deleted. |
| (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted. |
| (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted. |
| Drive-by: replace `dir=*` attribute rules with `-webkit-margin-*` properties. |
| |
| 2018-11-30 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Uncaught Exception opening Web Inspector to Debugger Tab |
| https://bugs.webkit.org/show_bug.cgi?id=192174 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.runAfterPendingDispatches): |
| Dispatch the callback with a timeout if there is no backend target yet |
| so it doesn't get lost. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.Connection.prototype.runAfterPendingDispatches): |
| Change the ambiguous name "script" to the more familiar "callback". |
| |
| 2018-11-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: replace all unicode characters with the escaped character code |
| https://bugs.webkit.org/show_bug.cgi?id=192216 |
| <rdar://problem/46275637> |
| |
| Reviewed by Brian Burg. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| * UserInterface/Models/AuditTestCase.js: |
| * UserInterface/Models/Canvas.js: |
| * UserInterface/Models/RecordingAction.js: |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| * UserInterface/Views/AuditTestCaseContentView.js: |
| * UserInterface/Views/AuditTestContentView.js: |
| * UserInterface/Views/AuditTestGroupContentView.js: |
| * UserInterface/Views/CallFrameView.js: |
| * UserInterface/Views/CanvasContentView.js: |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| * UserInterface/Views/ConsoleMessageView.css: |
| * UserInterface/Views/ContextMenuUtilities.js: |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| * UserInterface/Views/DataGrid.css: |
| * UserInterface/Views/DataGrid.js: |
| * UserInterface/Views/DatabaseTableContentView.js: |
| * UserInterface/Views/DebuggerDashboardView.css: |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| * UserInterface/Views/ErrorObjectView.js: |
| * UserInterface/Views/EventBreakpointPopover.js: |
| * UserInterface/Views/InlineSwatch.js: |
| * UserInterface/Views/LayerTreeDataGridNode.js: |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| * UserInterface/Views/Layers3DContentView.js: |
| * UserInterface/Views/LayoutTimelineDataGridNode.js: |
| * UserInterface/Views/NetworkTableContentView.css: |
| * UserInterface/Views/NetworkTableContentView.js: |
| * UserInterface/Views/ObjectPreviewView.js: |
| * UserInterface/Views/ProfileDataGridNode.js: |
| * UserInterface/Views/ResourceTimelineDataGridNode.js: |
| * UserInterface/Views/ScriptDetailsTimelineView.css: |
| * UserInterface/Views/TextEditor.css: |
| * UserInterface/Views/TreeOutline.css: |
| |
| 2018-11-29 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: RTL: disclosure triangles should be flipped and aligned right |
| https://bugs.webkit.org/show_bug.cgi?id=192089 |
| <rdar://problem/46316753> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ComputedStyleSection.css: |
| (.computed-style-section .computed-property-item .disclosure-button): |
| (body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button): |
| |
| * UserInterface/Views/ConsoleMessageView.css: |
| (.console-message.expandable .console-top-level-message::before): |
| (body[dir=rtl] .console-message.expandable .console-top-level-message::before): |
| |
| * UserInterface/Views/ErrorObjectView.css: |
| (.error-object > .formatted-error::before): |
| (body[dir=rtl] .error-object > .formatted-error::before): |
| (.error-object .content): |
| |
| * UserInterface/Views/LogContentView.css: |
| (.console-group-title::before): |
| (body[dir=ltr] .console-group-title::before): |
| (body[dir=rtl] .console-group-title::before): |
| |
| * UserInterface/Views/ObjectTreeView.css: |
| (body[dir=rtl] .object-tree > :matches(.title, .object-preview)::before): |
| |
| * UserInterface/Views/TypeTreeElement.css: |
| (body[dir=rtl] .item.type-tree-element.parent > .disclosure-button): |
| |
| 2018-11-28 Dean Jackson <dino@apple.com> |
| |
| [ES Modules] Allow .mjs content when loaded from file:// |
| https://bugs.webkit.org/show_bug.cgi?id=192100 |
| <rdar://problem/46320065> |
| |
| Reviewed by Sam Weinig. |
| |
| Add a mapping from .mjs to application/javascript. |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.mimeTypeForFileExtension): |
| |
| 2018-11-29 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements: selecting more than one DOM node causes the scope highlight to contrast |
| https://bugs.webkit.org/show_bug.cgi?id=192118 |
| <rdar://problem/46325664> |
| |
| Reviewed by Devin Rousso. |
| |
| Use an alpha blended border for the "selected" DOM scope highlight, |
| matching the "hovered" scope highlight. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom li.selected + ol.children.expanded): |
| |
| 2018-11-28 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash |
| https://bugs.webkit.org/show_bug.cgi?id=192016 |
| <rdar://problem/46284417> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.initializeBackendTarget): |
| (WI.contentLoaded): |
| (WI.whenTargetsAvailable): |
| Don't evaluate any InspectorFrontendAPI commands until the frontend |
| has initialized a main target and the user interface. |
| |
| 2018-11-28 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: enable selection of multiple properties by default |
| https://bugs.webkit.org/show_bug.cgi?id=192109 |
| <rdar://problem/46323565> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| Remove the checkbox. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property): |
| (.spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): |
| (.spreadsheet-style-declaration-editor .property.selected): |
| (.spreadsheet-style-declaration-editor .property.selected:focus): |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property): Deleted. |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): Deleted. |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected): Deleted. |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus): Deleted. |
| Remove `.multiple-properties-selection` class. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField): |
| (WI.SpreadsheetTextField.prototype._handleFocus): Deleted. |
| |
| 2018-11-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: empty results folder is shown after clearing filters |
| https://bugs.webkit.org/show_bug.cgi?id=192106 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Added. |
| |
| 2018-11-28 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove unused DataGrid and TreeOutline code |
| https://bugs.webkit.org/show_bug.cgi?id=191622 |
| <rdar://problem/46052014> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CanvasDetailsSidebarPanel.js: |
| (WI.CanvasDetailsSidebarPanel.prototype.initialLayout): |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.insertChildElement): |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline): |
| (WI.DOMTreeOutline.prototype.update): |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype.removeChildrenRecursive): Deleted. |
| |
| * UserInterface/Views/DataGridNode.js: |
| (WI.DataGridNode.prototype.removeChildren): |
| (WI.DataGridNode.prototype.removeChildrenRecursive): Deleted. |
| |
| * UserInterface/Views/ErrorObjectView.css: |
| (.error-object:not(.expanded) .content): |
| (.error-object .content): |
| (.error-object:not(.expanded) .tree-outline): Deleted. |
| (.error-object .tree-outline): Deleted. |
| |
| * UserInterface/Views/ErrorObjectView.js: |
| (WI.ErrorObjectView): |
| (WI.ErrorObjectView.prototype.get treeOutline): Deleted. |
| Use a simple container since TreeOutline features aren't used, |
| and remove unused property `treeOutline`. |
| |
| * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js: |
| (WI.RecordingTraceDetailsSidebarPanel): |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.removeChildren): |
| (WI.TreeElement.prototype.removeChildrenRecursive): Deleted. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.removeChildrenRecursive): Deleted. |
| (WI.TreeOutline.prototype.reattachIfIndexChanged): Deleted. |
| Removed `element` parameter now that the only use case has been removed. |
| |
| 2018-11-27 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Elements tab should allow selecting/deleting multiple DOM nodes |
| https://bugs.webkit.org/show_bug.cgi?id=192059 |
| <rdar://problem/46294827> |
| |
| Reviewed by Devin Rousso. |
| |
| Enable multiple DOM node selection in the DOMTreeContentView. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController): |
| (WI.SelectionController.prototype.get allowsEmptySelection): |
| (WI.SelectionController.prototype.set allowsEmptySelection): |
| Allow clients to control whether the last selected item can be deselected. |
| (WI.SelectionController.prototype.deselectItem): |
| (WI.SelectionController.prototype.didInsertItem): |
| Rewritten to prevent infinite loop. |
| (WI.SelectionController.prototype.didRemoveItem): |
| (WI.SelectionController.prototype._updateSelectedItems): |
| (WI.SelectionController.prototype._adjustIndexesAfter): Deleted. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.updateSelectionArea): |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype.updateSelection): |
| Updating the selection area DOM element should not assume that only one |
| TreeElement is selected at a time. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.get allowsEmptySelection): |
| (WI.TreeOutline.prototype.set allowsEmptySelection): |
| (WI.TreeOutline.prototype.set selectedTreeElement): |
| (WI.TreeOutline.prototype.get selectedTreeElements): |
| (WI.TreeOutline.prototype._treeKeyDown): |
| |
| * UserInterface/Views/TreeOutlineGroup.js: |
| (WI.TreeOutlineGroup): |
| (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections): |
| Eliminate use of `TreeElement.prototype.deselect`. |
| |
| 2018-11-27 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TreeOutline should re-use multiple-selection logic from Table |
| https://bugs.webkit.org/show_bug.cgi?id=191483 |
| <rdar://problem/45953305> |
| |
| Reviewed by Devin Rousso. |
| |
| Update TreeOutline to use SelectionController. Adopting SelectionController |
| in TreeOutline is not as straightforward as it was in Table. Selected items |
| are tracked by index, and TreeElement lacks an explicit index. As a consequence |
| TreeElement indexes are calcualted as needed and cached. The cache is cleared |
| whenever an element is added or removed. |
| |
| * UserInterface/Controllers/SelectionController.js: |
| (WI.SelectionController.prototype.didInsertItem): |
| (WI.SelectionController.prototype.didRemoveItem): |
| (WI.SelectionController.prototype.handleKeyDown): |
| Drive-by syntax error fix. |
| (WI.SelectionController.prototype._adjustIndexesAfter): |
| (WI.SelectionController): |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype.canSelectOnMouseDown): |
| (WI.DOMTreeElement.prototype.selectOnMouseDown): Deleted. |
| |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype._onmousedown): |
| Item selection is now handled by SelectionController. |
| |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown): |
| (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown): Deleted. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.canSelectOnMouseDown): |
| (WI.TreeElement.prototype._attach): |
| (WI.TreeElement.prototype.select): |
| (WI.TreeElement.prototype.deselect): |
| Route item selection through the parent TreeOutline, in order to go though |
| the TreeOutline's SelectionController. |
| |
| (WI.TreeElement.treeElementMouseDown): Deleted. |
| Moved handler to TreeOutline, which owns the SelectionController that |
| needs to respond to mouse events. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.get allowsMultipleSelection): |
| (WI.TreeOutline.prototype.set allowsMultipleSelection): |
| (WI.TreeOutline.prototype.get selectedTreeElement): |
| (WI.TreeOutline.prototype.set selectedTreeElement): |
| (WI.TreeOutline.prototype.insertChild): |
| (WI.TreeOutline.prototype.removeChildAtIndex): |
| (WI.TreeOutline.prototype._rememberTreeElement): |
| (WI.TreeOutline.prototype._forgetTreeElement): |
| (WI.TreeOutline.prototype._treeKeyDown): |
| (WI.TreeOutline.prototype.selectionControllerNumberOfItems): |
| (WI.TreeOutline.prototype.selectionControllerSelectionDidChange): |
| (WI.TreeOutline.prototype.selectionControllerNextSelectableIndex): |
| (WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex): |
| (WI.TreeOutline.prototype.selectTreeElementInternal): |
| (WI.TreeOutline._generateStyleRulesIfNeeded._indexOfTreeElement.previousElement): |
| (WI.TreeOutline._generateStyleRulesIfNeeded): |
| |
| 2018-11-27 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Experimental Computed panel is unreadable in Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=192053 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (@media (prefers-dark-interface)): |
| (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): |
| * UserInterface/Views/ComputedStyleSection.css: |
| (.computed-style-section .computed-property-item.expanded): |
| (.computed-style-section .computed-property-item.expanded + .computed-property-item): |
| (@media (prefers-dark-interface)): |
| |
| 2018-11-27 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Computed panel: allow to expand properties to show list of overridden values |
| https://bugs.webkit.org/show_bug.cgi?id=191984 |
| |
| Reviewed by Devin Rousso. |
| |
| Introduce the new experimental Computed Style Cascades. |
| |
| Each property now can expand to show a list of overridden values, their corresponding |
| selectors, and source locations. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Main.html: |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype.get uniqueOrderedStyles): |
| Move `uniqueOrderedStyles` function unmodified from SpreadsheetRulesStyleDetailsPanel so it can be used by ComputedStyleDetailsPanel, too. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.computed-with-traces .computed-style-properties): |
| (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)): |
| (.computed-with-traces .details-section.computed-style-properties > .content): |
| (.computed-with-traces .computed-style-properties .property .go-to-arrow): |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.refresh): |
| (WI.ComputedStyleDetailsPanel.prototype.applyFilter): |
| (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection): |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces): |
| (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged): |
| (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged): |
| (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied): |
| (WI.ComputedStyleDetailsPanel): |
| Use the new Computed section (WI.ComputedStyleSection) only when it's enabled in the experimental settings. |
| Otherwise, use the current Computed section. |
| |
| * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: |
| (WI.ComputedStyleDetailsSidebarPanel): |
| |
| * UserInterface/Views/ComputedStyleSection.css: Added. |
| (.computed-style-section): |
| (.computed-style-section .computed-property-item): |
| (.computed-style-section .computed-property-item.expanded): |
| (.computed-style-section .computed-property-item.expanded + .computed-property-item): |
| (.computed-style-section .computed-property-item .disclosure-button): |
| (.computed-style-section .computed-property-item .property-traces): |
| (.computed-style-section .computed-property-item.expanded .property-traces): |
| (.computed-style-section .computed-property-item.expanded .disclosure-button): |
| (.computed-style-section .computed-property-item .property-trace-item): |
| (.computed-style-section .computed-property-item .property-trace-item .property.overridden .value): |
| (.computed-style-section .property-trace-item-left,): |
| (.computed-style-section .property-trace-item-right): |
| (.computed-style-section .computed-property-item .property-trace-item .value): |
| (.computed-style-section .property .value): |
| (.computed-style-section .computed-property-item .property): |
| (.computed-style-section .computed-property-item .property .name): |
| (.computed-style-section .computed-property-item .property-trace-item .selector): |
| (.computed-style-section .computed-property-item .origin): |
| (.computed-style-section .computed-property-item .go-to-link): |
| (.computed-style-section .property-trace-item .property .name,): |
| (.computed-style-section .property-trace-item .property .value + span): |
| (.computed-style-properties.details-section > .content,): |
| |
| * UserInterface/Views/ComputedStyleSection.js: Added. |
| (WI.ComputedStyleSection): |
| (WI.ComputedStyleSection.prototype.get style): |
| (WI.ComputedStyleSection.prototype.set style): |
| (WI.ComputedStyleSection.prototype.get styleTraces): |
| (WI.ComputedStyleSection.prototype.set styleTraces): |
| (WI.ComputedStyleSection.prototype.set showsImplicitProperties): |
| (WI.ComputedStyleSection.prototype.set alwaysShowPropertyNames): |
| (WI.ComputedStyleSection.prototype.set propertyVisibilityMode): |
| (WI.ComputedStyleSection.prototype.set hideFilterNonMatchingProperties): |
| (WI.ComputedStyleSection.prototype.get propertiesToRender): |
| (WI.ComputedStyleSection.prototype.layout): |
| (WI.ComputedStyleSection.prototype.detached): |
| (WI.ComputedStyleSection.prototype.hidden): |
| (WI.ComputedStyleSection.prototype.applyFilter): |
| (WI.ComputedStyleSection.prototype.spreadsheetStylePropertyShowProperty): |
| (WI.ComputedStyleSection.prototype._createTrace): |
| (WI.ComputedStyleSection.prototype._handlePropertiesChanged): |
| |
| * UserInterface/Views/ExpandableView.js: Added. |
| (WI.ExpandableView): |
| (WI.ExpandableView.prototype.get element): |
| (WI.ExpandableView.prototype._onDisclosureButtonClick): |
| (WI.ExpandableView.prototype._update): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout): |
| Replace `_renderOrigin` with WI.StyleOriginView so it could be used by WI.ComputedStyleSection. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.update): |
| (WI.SpreadsheetStyleProperty.prototype._isEditable): |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| Introduce `readOnly` option so WI.SpreadsheetStyleProperty could be used by WI.ComputedStyleSection. |
| |
| * UserInterface/Views/StyleOriginView.js: Added. |
| (WI.StyleOriginView): |
| |
| 2018-11-27 Timothy Hatcher <timothy@apple.com> |
| |
| Web Inspector: Add support for forcing color scheme appearance in DOM tree. |
| https://bugs.webkit.org/show_bug.cgi?id=191820 |
| rdar://problem/46153172 |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: Updated. |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager): |
| (WI.CSSManager.prototype.get defaultAppearance): Added. |
| (WI.CSSManager.prototype.get forcedAppearance): Added. |
| (WI.CSSManager.prototype.set forcedAppearance): Added. |
| (WI.CSSManager.prototype.canForceAppearance): Added. |
| (WI.CSSManager.prototype.defaultAppearanceDidChange): Added. |
| * UserInterface/Images/Appearance.svg: Added. |
| * UserInterface/Protocol/PageObserver.js: |
| (WI.PageObserver.prototype.defaultAppearanceChanged): Added. |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| (WI.DOMTreeContentView.prototype._defaultAppearanceDidChange): Added. |
| (WI.DOMTreeContentView.prototype._toggleAppearance): Added. |
| |
| 2018-11-27 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Cookies table needs copy keyboard shortcut and context menu support |
| https://bugs.webkit.org/show_bug.cgi?id=191482 |
| <rdar://problem/45953002> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype.handleCopyEvent): |
| (WI.CookieStorageContentView.prototype.tableCellContextMenuClicked): |
| As with Delete, if the target row is selected, all selected rows are copied. |
| Otherwise only the target row is copied. This distinction will be surfaced |
| in the UI in https://webkit.org/b/191095. |
| |
| (WI.CookieStorageContentView.prototype.tablePopulateCell): |
| (WI.CookieStorageContentView.prototype._cookiesAtIndexes): |
| (WI.CookieStorageContentView.prototype._formatCookiesAsText): |
| (WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn): |
| (WI.CookieStorageContentView): |
| Break Cookie property formatting into a helper method, which is used for |
| formatting Table cells and creating plain text for the clipboard. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.get columns): |
| |
| 2018-11-27 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table selection should be handled by a SelectionController |
| https://bugs.webkit.org/show_bug.cgi?id=191977 |
| <rdar://problem/46253093> |
| |
| Reviewed by Devin Rousso. |
| |
| Add a SelectionController class, which manages an IndexSet of selected |
| items, and provides operations for adding and removing items from the |
| selection. Complex behaviors such as shift-clicking to select a range of |
| items, and updating the selection using the keyboard, are forwarded to |
| the controller using special-purpose methods that accept DOM Event objects. |
| |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Controllers/SelectionController.js: Added. |
| (WI.SelectionController): |
| (WI.SelectionController.prototype.get delegate): |
| (WI.SelectionController.prototype.get lastSelectedItem): |
| (WI.SelectionController.prototype.get selectedItems): |
| (WI.SelectionController.prototype.get allowsMultipleSelection): |
| (WI.SelectionController.prototype.set allowsMultipleSelection): |
| (WI.SelectionController.prototype.get numberOfItems): |
| (WI.SelectionController.prototype.hasSelectedItem): |
| (WI.SelectionController.prototype.selectItem): |
| (WI.SelectionController.prototype.deselectItem): |
| (WI.SelectionController.prototype.selectAll): |
| (WI.SelectionController.prototype.deselectAll): |
| (WI.SelectionController.prototype.removeSelectedItems): |
| (WI.SelectionController.prototype.reset): |
| (WI.SelectionController.prototype.didRemoveItem): |
| (WI.SelectionController.prototype.handleKeyDown): |
| (WI.SelectionController.prototype.handleItemMouseDown.normalizeRange): |
| (WI.SelectionController.prototype.handleItemMouseDown): |
| (WI.SelectionController.prototype._deselectAllAndSelect): |
| (WI.SelectionController.prototype._selectItemsFromArrowKey): |
| (WI.SelectionController.prototype._nextSelectableIndex): |
| (WI.SelectionController.prototype._previousSelectableIndex): |
| (WI.SelectionController.prototype._updateSelectedItems): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.get selectedRow): |
| (WI.Table.prototype.get selectedRows): |
| (WI.Table.prototype.get allowsMultipleSelection): |
| (WI.Table.prototype.set allowsMultipleSelection): |
| (WI.Table.prototype.isRowSelected): |
| (WI.Table.prototype.reloadData): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype.selectAll): |
| (WI.Table.prototype.deselectAll): |
| (WI.Table.prototype.removeRow): |
| (WI.Table.prototype.removeSelectedRows): |
| (WI.Table.prototype.selectionControllerSelectionDidChange): |
| (WI.Table.prototype.selectionControllerNumberOfItems): |
| (WI.Table.prototype.selectionControllerNextSelectableIndex): |
| (WI.Table.prototype.selectionControllerPreviousSelectableIndex): |
| (WI.Table.prototype._handleKeyDown): |
| (WI.Table.prototype._handleMouseDown): |
| (WI.Table.prototype._removeRows): |
| (WI.Table.prototype._toggleSelectedRowStyle): |
| (WI.Table.prototype._selectRowsFromArrowKey): Deleted. |
| (WI.Table.prototype._handleMouseDown.normalizeRange): Deleted. |
| (WI.Table.prototype._deselectAllAndSelect): Deleted. |
| (WI.Table.prototype._notifySelectionDidChange): Deleted. |
| (WI.Table.prototype._updateSelectedRows): Deleted. |
| |
| 2018-11-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: "No Filter Results" in navigation sidebar should have a button to clear filters |
| https://bugs.webkit.org/show_bug.cgi?id=191916 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.resetFilter): Added. |
| (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults): |
| |
| * UserInterface/Views/FilterBar.js: |
| (WI.FilterBar.prototype.clear): |
| |
| * UserInterface/Views/FilterBarButton.js: |
| (WI.FilterBarButton.prototype.toggle): |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype.resetFilter): Added. |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WI.StorageSidebarPanel.prototype.resetFilter): Added. |
| |
| * UserInterface/Views/AuditTestContentView.js: |
| (WI.AuditTestContentView.prototype.showFilteredPlaceholder): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage): |
| |
| * UserInterface/Views/Main.css: |
| (.message-text-view > .message + button): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: automatically add to tab bar when the experimental setting is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191659 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| Drive-by: use existing constants instead of hard-coded strings for consistency. |
| |
| 2018-11-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Timelines: add Media timeline |
| https://bugs.webkit.org/show_bug.cgi?id=191625 |
| |
| Reviewed by Matt Baker. |
| |
| Add a new timeline to Timelines for media related events (e.g. event/fullscreen/low-power). |
| Mimics what is visible by using the same instrumentation points as the Network tab when |
| "Group Media Requests" is enabled. |
| |
| * UserInterface/Models/MediaInstrument.js: Added. |
| (WI.MediaInstrument): |
| (WI.MediaInstrument.supported): |
| (WI.MediaInstrument.prototype.get timelineRecordType): |
| (WI.MediaInstrument.prototype.startInstrumentation): |
| (WI.MediaInstrument.prototype.stopInstrumentation): |
| |
| * UserInterface/Models/MediaTimelineRecord.js: Added. |
| (WI.MediaTimelineRecord): |
| (WI.MediaTimelineRecord.prototype.get eventType): |
| (WI.MediaTimelineRecord.prototype.get domNode): |
| (WI.MediaTimelineRecord.prototype.get domEvent): |
| (WI.MediaTimelineRecord.prototype.get isLowPower): |
| (WI.MediaTimelineRecord.prototype.get displayName): |
| (WI.MediaTimelineRecord.prototype.saveIdentityToCookie): |
| |
| * UserInterface/Views/MediaTimelineDataGridNode.js: Added. |
| (WI.MediaTimelineDataGridNode): |
| (WI.MediaTimelineDataGridNode.prototype.get records): |
| (WI.MediaTimelineDataGridNode.prototype.get data): |
| (WI.MediaTimelineDataGridNode.prototype.createCellContent): |
| (WI.MediaTimelineDataGridNode.prototype.iconClassNames): |
| (WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn): |
| |
| * UserInterface/Views/MediaTimelineOverviewGraph.js: Added. |
| (WI.MediaTimelineOverviewGraph): |
| (WI.MediaTimelineOverviewGraph.prototype.reset): |
| (WI.MediaTimelineOverviewGraph.prototype.shown): |
| (WI.MediaTimelineOverviewGraph.prototype.hidden): |
| (WI.MediaTimelineOverviewGraph.prototype.layout): |
| (WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord): |
| (WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded): |
| * UserInterface/Views/MediaTimelineOverviewGraph.css: Added. |
| (.timeline-overview-graph.media > .timeline-record-bar): |
| (.timeline-overview-graph.media > .timeline-record-bar > .segment): |
| |
| * UserInterface/Views/MediaTimelineView.js: Added. |
| (WI.MediaTimelineView): |
| (WI.MediaTimelineView.prototype.get secondsPerPixel): |
| (WI.MediaTimelineView.prototype.get selectionPathComponents): |
| (WI.MediaTimelineView.prototype.closed): |
| (WI.MediaTimelineView.prototype.reset): |
| (WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes): |
| (WI.MediaTimelineView.prototype.dataGridSortComparator.): |
| (WI.MediaTimelineView.prototype.dataGridSortComparator): |
| (WI.MediaTimelineView.prototype.layout): |
| (WI.MediaTimelineView.prototype._processPendingRecords): |
| (WI.MediaTimelineView.prototype._handleRecordAdded): |
| (WI.MediaTimelineView.prototype._handleSelectionPathComponentSiblingSelected): |
| * UserInterface/Views/MediaTimelineView.css: Added. |
| (.timeline-view.media > .data-grid): |
| |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| (WI.DOMEventsBreakdownView.prototype.layout): |
| * UserInterface/Views/DOMNodeEventsContentView.js: |
| (WI.DOMNodeEventsContentView.prototype.initialLayout): |
| * UserInterface/Views/NetworkDOMNodeDetailView.js: |
| (WI.NetworkDOMNodeDetailView): |
| (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.get filterNavigationItems): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| (WI.NetworkTableContentView.prototype._showDetailView): |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry): |
| Remove passing of `startTimestamp` to `WI.DOMEventsBreakdownView`, as we should be showing |
| absolute timestamps for each event, not relative to the start of the recording. |
| |
| * UserInterface/Views/TimelineIcons.css: |
| (.media-icon .icon): Added. |
| (.dom-event-record .icon): Added. |
| (.dom-event-record.fullscreen .icon): Added. |
| (.low-power-record .icon): Added. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.availableTimelineTypes): |
| (WI.TimelineManager.prototype.capturingStarted): |
| (WI.TimelineManager.prototype.capturingStopped): |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): Added. |
| (WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): Added. |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WI.TimelineRuler.prototype.clearMarkers): |
| (WI.TimelineRuler.prototype._handleClick): |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._timelineRulerMouseClicked): |
| * UserInterface/Models/TimelineRecording.js: |
| (WI.TimelineRecording.prototype.reset): |
| (WI.TimelineRecording.prototype.addEventMarker): |
| (WI.TimelineRecording.prototype.addRecord): |
| (WI.TimelineRecording.prototype._keyForRecord): |
| Drive-by: rework the logic for "click" event pass-through to the graph underneath. |
| |
| * UserInterface/Models/Instrument.js: |
| (WI.Instrument.createForTimelineType): |
| |
| * UserInterface/Models/TimelineRecord.js: |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.displayNameForTimelineType): |
| (WI.TimelineTabContentView.iconClassNameForTimelineType): |
| (WI.TimelineTabContentView.genericClassNameForTimelineType): |
| (WI.TimelineTabContentView.iconClassNameForRecord): |
| (WI.TimelineTabContentView.displayNameForRecord): |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.timeline-record-type-media > .segment): Added. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WI.TimelineOverviewGraph.createForTimeline): |
| |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord.EventType.displayName): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Images/DOMEvent.svg: Added. |
| * UserInterface/Images/DOMEventFullscreen.svg: Added. |
| * UserInterface/Images/LowPower.svg: Added. |
| * UserInterface/Images/MediaInstrument.svg: Added. |
| |
| 2018-11-25 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove parameters from TreeOutline SelectionDidChange event |
| https://bugs.webkit.org/show_bug.cgi?id=191770 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/CallFrameTreeController.js: |
| (WI.CallFrameTreeController.prototype._treeSelectionDidChange): |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): Deleted. |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._treeSelectionDidChange): |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WI.StorageSidebarPanel._treeSelectionDidChange): |
| * UserInterface/Views/TimelineDataGrid.js: |
| (WI.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange): |
| (WI.TimelineDataGrid): |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange): |
| Use `event.target.selectedTreeElement` instead of `event.data.selectedElement`. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange): |
| (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState): Deleted. |
| Refactor away the single place `event.data.deselectedElement` was used. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.select): |
| (WI.TreeElement.prototype.deselect): |
| Remove `selectedElement` and `deselectedElement` from event data. |
| |
| 2018-11-19 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: removing and re-adding the tab will duplicate tests |
| https://bugs.webkit.org/show_bug.cgi?id=191843 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.loadStoredTests): |
| If we already have tests, don't attempt to load any stored tests. |
| |
| 2018-11-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: "Reload Web Inspector" button no longer partially works |
| https://bugs.webkit.org/show_bug.cgi?id=191773 |
| <rdar://problem/46139932> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| (sheetElement.innerHTML): |
| * UserInterface/Views/SettingsTabContentView.js: |
| |
| 2018-11-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: add button to show system certificate dialog |
| https://bugs.webkit.org/show_bug.cgi?id=191458 |
| <rdar://problem/45977019> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.supportsShowCertificate): Added. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.showCertificate): Added. |
| |
| * UserInterface/Views/ResourceSecurityContentView.js: |
| (WI.ResourceSecurityContentView.prototype._refreshCetificateSection): |
| * UserInterface/Views/ResourceSecurityContentView.css: |
| (.resource-security .details > .show-certificate > .key): Added. |
| (.resource-security .details > .show-certificate > .key > .error): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: add default tests |
| https://bugs.webkit.org/show_bug.cgi?id=191758 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.loadStoredTests): |
| (WI.AuditManager.prototype.addDefaultTestsIfNeeded): Added. |
| If there are no previously saved tests in the database, automatically add the default set. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._addTest): |
| (WI.AuditNavigationSidebarPanel.prototype._addResult): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): |
| * UserInterface/Views/AuditNavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view): Added. |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > .message): Added. |
| (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > button): Added. |
| When the last test is removed, show a placeholder message that allows the user to re-add the |
| default set of tests. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder): |
| (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: minor style improvements |
| https://bugs.webkit.org/show_bug.cgi?id=191727 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager): |
| (WI.AuditManager.prototype._handleFrameMainResourceDidChange): Added. |
| Clear test results when the main frame navigates, but don't clear the saved results. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.prototype.async run): |
| * UserInterface/Models/AuditTestCaseResult.js: |
| (WI.AuditTestCaseResult): |
| (WI.AuditTestCaseResult.async fromPayload): |
| (WI.AuditTestCaseResult.prototype.get resolvedDOMNodes): Added. |
| (WI.AuditTestCaseResult.prototype.toJSON): |
| Capture the full CSS path for any returned DOM nodes when the test finishes running, so that |
| if the node moves around the path isn't modified as well. |
| |
| * UserInterface/Views/AuditTestCaseContentView.js: |
| (WI.AuditTestCaseContentView.prototype.layout): |
| Always show the URL for the test when viewing a saved result. |
| |
| * UserInterface/Views/AuditTestContentView.css: |
| (.content-view-container > .content-view.audit-test > header p): |
| (.content-view.audit-test > header): |
| * UserInterface/Views/AuditTestCaseContentView.css: |
| (.content-view.audit-test-case > header): Added. |
| (.content-view.audit-test-case > header h1 > img): |
| (.content-view.audit-test-case > header > .metadata > .source): Added. |
| (.content-view.audit-test-case > header > .metadata > .duration): |
| (.content-view.audit-test-case > section table > tr > td:first-child): |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group > header): |
| Horizontally align items in the header for visual consistency. |
| |
| 2018-11-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Include default filtering of InspectorBackend.dumpInspectorProtocolMessages with multi target backend |
| https://bugs.webkit.org/show_bug.cgi?id=191785 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Debug/Bootstrap.js: |
| (dumpMessagesCurrentState): |
| (applyDumpMessagesState): |
| (WI.runBootstrapOperations): |
| Include tri-state for the logs button. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.set filterMultiplexingBackendInspectorProtocolMessages): |
| (InspectorBackendClass.prototype.get filterMultiplexingBackendInspectorProtocolMessages): |
| (InspectorBackendClass.prototype._startOrStopAutomaticTracing): |
| Add new filtering state (the Setting already got added in the past). |
| |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WI.LoggingProtocolTracer): |
| (WI.LoggingProtocolTracer.prototype.set filterMultiplexingBackend): |
| (WI.LoggingProtocolTracer.prototype.get filterMultiplexingBackend): |
| (WI.LoggingProtocolTracer.prototype._processEntry): |
| Perform new filtering. |
| |
| 2018-11-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector) |
| https://bugs.webkit.org/show_bug.cgi?id=191740 |
| <rdar://problem/45470897> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.Connection.prototype._dispatchResponse): |
| Hide the TargetAgent does not exist message. This is necessary so that WebKitLegacy |
| tests don't include this line in output each test. |
| |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| (WI.resetMainExecutionContext): |
| (WI.performOneTimeFrontendInitializationsUsingTarget): |
| Behave more like Main.js and initialize a MultiplexingBackendTarget when the |
| TargetAgent is available. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.runAfterPendingDispatches): |
| Use the main target, a.k.a. the page connection. The backend target's |
| messages don't have any responses, so this was effectively not waiting |
| at all. |
| |
| 2018-11-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TreeOutline shouldn't select first child of an expanded element on right arrow key |
| https://bugs.webkit.org/show_bug.cgi?id=191766 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype._treeKeyDown): |
| |
| 2018-11-14 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should recalculate scrollable height when resized |
| https://bugs.webkit.org/show_bug.cgi?id=191328 |
| <rdar://problem/45854412> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._hideDetailView): |
| Force table columns to layout after hiding the detail view. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.showColumn): |
| Call `_resizeColumnsAndFiller` instead of `resize`. The latter also cleared |
| `_cachedWidth`, which isn't unnecessary since the width hasn't changed. |
| |
| (WI.Table.prototype.layout): |
| previously `_resizeColumnsAndFiller` always occurred after `_updateVisibleRows`, |
| it was just a matter of whether the cached width and height were cleared first. |
| That now happens in `sizeDidChange`. |
| |
| (WI.Table.prototype.sizeDidChange): |
| (WI.Table.prototype._updateVisibleRows): |
| (WI.Table.prototype.resize): Deleted. |
| Internally this cleared the cached width and height, which moved to `sizeDidChange`. |
| Externally this was used by NetworkTableContentView to force columns to |
| layout after hiding the details view. Calling `updateLayout` on the table |
| accomplishes the same thing using the standard View API. |
| |
| (WI.Table.prototype._resizeColumnsAndFiller): |
| Only update the cached width, since the height will already have been |
| updated. The number of rows doesn't change during this method, so that |
| check was removed. |
| |
| 2018-11-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r236540): Debugger: breakpoints are sorted alphabetically instead of numerically |
| https://bugs.webkit.org/show_bug.cgi?id=191560 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When sorting breakpoints, if the `WI.TreeElement`s being compared both contain instances of |
| `WI.Breakpoint`, sort by `WI.SourceCodeLocation` instead of title. |
| |
| We only do this for `WI.Breakpoint` because they are the only debuggable item that has a |
| `WI.SourceCodeLocation` (e.g. `WI.EventBreakpoint` is just an event name string). |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._compareBreakpointTreeElements): Added. |
| (WI.DebuggerSidebarPanel.prototype._addIssue): |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._compareTreeElements): Deleted. |
| |
| 2018-11-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: shift-clicking on a property should extend selection |
| https://bugs.webkit.org/show_bug.cgi?id=191575 |
| <rdar://problem/46012855> |
| |
| Reviewed by Devin Rousso. |
| |
| When there's at least one property is selected, Shift-clicking another property should extend the selection. |
| Pressing Up or Down keys while holding Shift also extends the selection. |
| |
| Remove unnecessary `_startedSelection`. Use `hasSelectedProperties` and `_isMousePressed` instead. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| `_isMousePressed` was set to `true` by mistake, causing numerous assertion fails. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focusIndex): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hasSelectedProperties): Renamed from _hasSelectedProperties. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.extendSelectedProperties): Added. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseLeave): Removed. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy): |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| Implement Shift-ArrowUp/ArrowDown keys. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyBlur): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseLeave): Removed. |
| This was only used to set _startedSelection. |
| |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick): |
| Remove _startedSelection and use hasSelectedProperties method instead. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty): |
| Remove spreadsheetStylePropertyMouseLeave since it is no longer used. |
| |
| 2018-11-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: send a call stack with each action instead of an array of call frames |
| https://bugs.webkit.org/show_bug.cgi?id=191628 |
| |
| Reviewed by Dean Jackson. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.prototype.async swizzle): |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.fromPayload): |
| (WI.RecordingAction.prototype.async swizzle): |
| |
| 2018-11-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add drag+drop for importing Audits and Recordings |
| https://bugs.webkit.org/show_bug.cgi?id=191566 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Reorganize the file loading logic for the Audit and Canvas tabs/managers. Add "drop" event |
| handlers to the tabs that add and show the corresponding object for the imported data. |
| |
| * UserInterface/Views/AuditTabContentView.js: |
| (WI.AuditTabContentView): |
| (WI.AuditTabContentView.prototype._handleDragOver): Added. |
| (WI.AuditTabContentView.prototype._handleDrop): Added. |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype._addCanvas): |
| (WI.CanvasTabContentView.prototype._recordingImportedOrStopped): |
| (WI.CanvasTabContentView.prototype._handleDragOver): Added. |
| (WI.CanvasTabContentView.prototype._handleDrop): Added. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.async processJSON): Added. |
| (WI.AuditManager.prototype.export): |
| (WI.AuditManager.prototype.import): Deleted. |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.processJSON): Added. |
| (WI.CanvasManager.prototype.importRecording): Deleted. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel): |
| (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): |
| (WI.AuditNavigationSidebarPanel.prototype._handleImportButtonNavigationItemClicked): |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype._handleImportButtonNavigationItemClicked): Added. |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem): |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype._handleImportButtonNavigationItemClicked): Added. |
| |
| * UserInterface/Base/FileUtilities.js: |
| (WI.FileUtilities.save): Added. |
| (WI.FileUtilities.importText): Added. |
| (WI.FileUtilities.importJSON): Added. |
| (WI.FileUtilities.async readText): Added. |
| (WI.FileUtilities.async readJSON): Added. |
| (WI.saveDataToFile): Deleted. |
| (WI.loadDataFromFile): Deleted. |
| * UserInterface/Base/Main.js: |
| (WI._contextMenuRequested): |
| (WI._save): |
| (WI._saveAs): |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForSourceCode): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._handleContextMenuEvent): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._exportHAR): |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._exportRecording): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._save): |
| Move file related functions into a static class container. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Include target identifier in protocol logging |
| https://bugs.webkit.org/show_bug.cgi?id=191478 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.Connection.prototype._dispatchResponse): |
| (InspectorBackend.Connection.prototype._dispatchEvent): |
| (InspectorBackend.Connection.prototype._sendMessageToBackend): |
| Call tracer log methods with the connection. |
| |
| * UserInterface/Debug/CapturingProtocolTracer.js: |
| * UserInterface/Protocol/ProtocolTracer.js: |
| * UserInterface/Protocol/LoggingProtocolTracer.js: |
| (WI.LoggingProtocolTracer): |
| (WI.LoggingProtocolTracer.prototype.logFrontendException): |
| (WI.LoggingProtocolTracer.prototype.logFrontendRequest): |
| (WI.LoggingProtocolTracer.prototype.logWillHandleResponse): |
| (WI.LoggingProtocolTracer.prototype.logDidHandleResponse): |
| (WI.LoggingProtocolTracer.prototype.logDidHandleEvent): |
| Include the connection in log methods. |
| |
| (WI.LoggingProtocolTracer.prototype.logProtocolError): |
| Removed, this is never called. |
| |
| (WI.LoggingProtocolTracer.prototype._processEntry): |
| Include the target identifier in entry messages. |
| |
| 2018-11-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Remote Inspector) |
| https://bugs.webkit.org/show_bug.cgi?id=191494 |
| <rdar://problem/45469854> |
| |
| Reviewed by Devin Rousso. |
| |
| This starts introducing multi-target support into the Web Inspector frontend. |
| Specifically a backend connection that is persistent, but has the ability to |
| connect to and transition between Page targets received through that backend |
| connection. |
| |
| This patch introduces the concept of a "Backend Target" which is the single |
| connection that the frontend contains to a backend. The old way of connecting |
| directly to a target is still supported. In that case the frontend constructs |
| a DirectBackendTarget for the debuggable type the frontend was spawns for. |
| However, if the frontend opens and has a TargetAgent, then it is likely |
| connected to a multi-target supporting backend and instead constructs a |
| MultiplexingBackendTarget, and will receive further information about |
| sub-targets to connect to. The only sub-target at the moment is a Page |
| sub-target. |
| |
| As part of bringing up multi-target support this adds a few measures to |
| handle situations where the frontend is playing fast and loose with agents. |
| When the frontend does `FooAgent.method` it intends that to be performed |
| on the "main" target being debugged. Likewise when the frontend loops |
| over targets it expects them to be the debuggable targets. This patch |
| profiles a new implementation of `WI.mainTarget` and `WI.targets` to |
| match the assumptions being made by the frontend. |
| |
| - In a direct-target world, there is a single target which |
| should be used for global agents and in WI.targets. |
| |
| - In a multi-target world, the page target is the one that |
| should be used for global agents and WI.targets is the list |
| of sub-targets (excluding the MultiplexingBackendTarget). |
| |
| In a multi-target world, there are now commonly two Targets. The |
| MultiplexingBackendTarget and a PageTarget sub-target. In the future |
| this may include more targets, such as ServiceWorkers, DedicatedWorkers, |
| and perhaps even frames. |
| |
| In a multi-target world, the frontend is immediately told about targets |
| as soon as it opens (via Target.targetCreated). In order to support |
| this, frontend initialization happens without a main target being available. |
| So this makes a few small changes to frontend initialization to perform |
| a bit of work once we know what the main target is. |
| |
| During a page transition the frontend is told to destroy existing targets |
| and is soon after told about any new page targets (via Target.targetDestroyed |
| and Target.targetCreated). The frontend special cases this page transition. |
| It expects only one Page target to be alive at any time, accessible through |
| WI.pageTarget. When a page transition happens the WI.pageTarget changes, and |
| the frontend performs a bit of work to prepare the UI to handle the transition: |
| `<Manager>.transitionPageTarget` / WI.Notification.TransitionPageTarget. |
| For the most part the UI behaves fine as long once there are main frame |
| change and main resource change events, but those other events allow |
| the frontend to respond to the specific page transition cases. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.initializeBackendTarget): |
| (WI.initializePageTarget): |
| (WI.transitionPageTarget): |
| (WI.terminatePageTarget): |
| (WI.resetMainExecutionContext): |
| (WI.redirectGlobalAgentsToConnection): |
| (WI.contentLoaded): |
| New global functions for target initialization |
| and page transitioning. |
| |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| (WI.initializeBackendTarget): |
| (WI.initializePageTarget): |
| (WI.transitionPageTarget): |
| (WI.terminatePageTarget): |
| (WI.resetMainExecutionContext): |
| (WI.redirectGlobalAgentsToConnection): |
| New global functions for target initialization. |
| Tests continue to be a direct connection to the Page. |
| |
| * UserInterface/Protocol/TargetObserver.js: |
| (WI.TargetObserver.prototype.targetCreated): |
| (WI.TargetObserver.prototype.targetDestroyed): |
| (WI.TargetObserver.prototype.dispatchMessageFromTarget): |
| New observer goes to the manager. |
| |
| * UserInterface/Controllers/TargetManager.js: |
| (WI.TargetManager): |
| (WI.TargetManager.prototype.get targets): |
| (WI.TargetManager.prototype.get allTargets): |
| (WI.TargetManager.prototype.targetForIdentifier): |
| (WI.TargetManager.prototype.targetCreated): |
| (WI.TargetManager.prototype.targetDestroyed): |
| (WI.TargetManager.prototype.dispatchMessageFromTarget): |
| (WI.TargetManager.prototype.createMultiplexingBackendTarget): |
| (WI.TargetManager.prototype.createDirectBackendTarget): |
| (WI.TargetManager.prototype._addTarget): |
| (WI.TargetManager.prototype._removeTarget): |
| (WI.TargetManager.prototype._createTarget): |
| (WI.TargetManager.prototype._checkAndHandlePageTargetTransition): |
| (WI.TargetManager.prototype._checkAndHandlePageTargetTermination): |
| (WI.TargetManager.prototype.addTarget): Deleted. |
| (WI.TargetManager.prototype.removeTarget): Deleted. |
| (WI.TargetManager.prototype.initializeMainTarget): Deleted. |
| TargetManager is where we handle creating and destroying targets |
| and their connections. In order to simplify things a bit we make |
| `WI.targets`, which goes through `get targets()` an array instead |
| of a Set. And this includes only the sub-targets. |
| |
| * UserInterface/Controllers/WorkerManager.js: |
| (WI.WorkerManager.prototype.workerCreated): |
| (WI.WorkerManager.prototype.workerTerminated): |
| Workers are still special-target-like things that multiplex through |
| WorkerAgent instead of TargetAgent. We'd like to promote these to |
| be full targets in the future. |
| |
| * UserInterface/Protocol/DirectBackendTarget.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/MainTarget.js. |
| (WI.DirectBackendTarget): |
| (WI.DirectBackendTarget.connectionInfoForDebuggable): |
| (WI.DirectBackendTarget.prototype.get mainResource): |
| (WI.DirectBackendTarget.prototype.set mainResource): |
| This is the only "MainTarget" class. It is the backend target for a direct connection. |
| |
| * UserInterface/Protocol/MultiplexingBackendTarget.js: |
| (WI.MultiplexingBackendTarget): |
| (WI.MultiplexingBackendTarget.prototype.initialize): |
| (WI.MultiplexingBackendTarget.prototype.get name): |
| (WI.MultiplexingBackendTarget.prototype.get executionContext): |
| (WI.MultiplexingBackendTarget.prototype.get mainResource): |
| This is the new backend target for a multi-target connection. |
| We don't expect it to be treated like other targets, so we don't |
| expect anyone to ask it for resources/executionContext/name info. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.TargetManager.prototype.evaluateInInspectedWindow): |
| This can be triggered by watch expressions before any target, and |
| therefore execution context, is available. Just return null, when |
| an execution context is available those clients will try again. |
| |
| * UserInterface/Debug/Bootstrap.js: |
| Provide an WI.isEngineeringBuild boolean that can be used for various |
| debugging features. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| New resources. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.dispatch): |
| (InspectorBackendClass.prototype.runAfterPendingDispatches): |
| (InspectorBackend.Agent): |
| `InspectorBackend.mainConnection` was renamed `InspectorBackend.backendConnection`. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.Connection): |
| (InspectorBackend.Connection.prototype._dispatchResponse): |
| (InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback): |
| (InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise): |
| (InspectorBackend.BackendConnection): |
| (InspectorBackend.BackendConnection.prototype.sendMessageToBackend): |
| (InspectorBackend.WorkerConnection): |
| (InspectorBackend.TargetConnection): |
| (InspectorBackend.TargetConnection.sendMessageToBackend): |
| Use a global sequence id to make filtering a bit easier in protocol tracing. |
| TargetConnection is identical to WorkerConnection except it uses TargetAgent |
| instead of WorkerAgent to perform multiplexing. |
| |
| * UserInterface/Protocol/JavaScriptContextTarget.js: |
| (WI.JavaScriptContextTarget): |
| * UserInterface/Protocol/PageTarget.js: |
| (WI.PageTarget): |
| (WI.PageTarget.prototype.get displayName): |
| Specialized target types. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._targetAdded): |
| (WI.DebuggerSidebarPanel.prototype._targetRemoved): |
| (WI.DebuggerSidebarPanel.prototype._updateCallStackTreeOutline): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._targetAdded): |
| (WI.SourceCodeTextEditor.prototype._targetRemoved): |
| (WI.SourceCodeTextEditor.prototype._callFramesDidChange): |
| (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget): |
| (WI.SourceCodeTextEditor.prototype._reinsertAllThreadIndicators): |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole.prototype.initializeMainExecutionContextPathComponent): |
| (WI.QuickConsole.prototype._targetAdded): |
| (WI.QuickConsole.prototype._targetRemoved): |
| We make target added get called with all targets, including the |
| MultiplexingBackendTarget and PageTargets, both of which would |
| not have happened before. Before it was only WorkerTargets. Make |
| these sites a little more robust for the type of target they expect |
| to be able to handle. |
| |
| * UserInterface/Base/Object.js: |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager): |
| (WI.DOMManager.prototype.transitionPageTarget): |
| (WI.DOMManager.prototype.requestDocument): |
| (WI.DOMManager.prototype._setDocument): |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager): |
| (WI.NetworkManager.prototype.transitionPageTarget): |
| (WI.NetworkManager.prototype.executionContextCreated): |
| (WI.NetworkManager.prototype._processMainFrameResourceTreePayload): |
| * UserInterface/Models/DefaultDashboard.js: |
| (WI.DefaultDashboard): |
| (WI.DefaultDashboard.prototype._mainResourceDidChange): |
| (WI.DefaultDashboard.prototype._transitionPageTarget): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype._mainResourceDidChange): |
| (WI.NetworkTableContentView.prototype._transitionPageTarget): |
| Special case handling when performing a page transition. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| Document reloads are not supported right now. |
| |
| 2018-11-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: don't start with auto-capture enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191553 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize): |
| (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput): |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.navigation-bar > .item.canvas-recording-auto-capture > label > input): |
| |
| 2018-11-14 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network Graphs are missing minimum sizes, might have no graph at all |
| https://bugs.webkit.org/show_bug.cgi?id=191208 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| `WI.NetworkTableContentView` used to rely on the `WI.timelineManager.persistentNetworkTimeline` |
| for events when a new resource is added. It also listened for `WI.Frame.Event.MainResourceDidChange` |
| on it's own, which was also listened to by `WI.timelineManager.persistentNetworkTimeline`. |
| Due to the order in which these listeners are added, the new main resource would get added |
| to the `WI.timelineManager.persistentNetworkTimeline` (and the `WI.NetworkTableContentView` |
| shortly after), and right after that the `WI.NetworkTableContentView` would reset the graph |
| in it's own listener for `WI.Frame.Event.MainResourceDidChange`. |
| |
| This patch removes `WI.timelineManager.persistentNetworkTimeline` and instead makes it so |
| that `WI.NetworkTableContentView` listens for resource added and main frame changed events |
| on its own (similar to other views that follow this pattern), ensuring that there are no |
| event races. |
| |
| Also relaxes the "requirement" that prevented 0 width blocks from being drawn, allowing |
| requests served from memory/disk to appear in the graph (their time is effectively 0). |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.closed): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock): |
| (WI.NetworkTableContentView.prototype._updateWaterfallTimeRange): Added. |
| (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish): |
| (WI.NetworkTableContentView.prototype._resourceLoadingDidFail): |
| (WI.NetworkTableContentView.prototype._handleResourceAdded): Added. |
| (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable): |
| (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): |
| (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table .waterfall .block:matches(.mouse-tracking, .filler) + .block:not(.mouse-tracking, .filler)): Added. |
| (.network-table .waterfall .block.filler + .block): Deleted. |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype._mainResourceDidChange): |
| (WI.TimelineManager.prototype._resourceWasAdded): |
| (WI.TimelineManager.prototype.get persistentNetworkTimeline): Deleted. |
| |
| 2018-11-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should support select all (Cmd-A) |
| https://bugs.webkit.org/show_bug.cgi?id=190299 |
| <rdar://problem/45029170> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.selectAll): |
| (WI.Table.prototype._handleKeyDown): |
| |
| 2018-11-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table with no selection should select the first/last row on down/up arrow key |
| https://bugs.webkit.org/show_bug.cgi?id=190100 |
| <rdar://problem/44879243> |
| |
| Reviewed by Devin Rousso. |
| |
| Pressing the up or down arrow key when nothing is selected should select |
| the last or first row, respectively. After selecting the row make sure |
| it is visible by calling the new Table method `revealRow`. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.revealRow): |
| (WI.Table.prototype._handleKeyDown): |
| (WI.Table.prototype._selectRowsFromArrowKey): |
| |
| 2018-11-13 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Command-A should select all properties |
| https://bugs.webkit.org/show_bug.cgi?id=191435 |
| <rdar://problem/45921373> |
| |
| Reviewed by Devin Rousso. |
| |
| When focused on a style property, Command-A on Mac (Control-A on other platforms) |
| should select all properties of the style rule. |
| |
| * UserInterface/Base/Utilities.js: |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| |
| 2018-11-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: show secure certificate details per-request |
| https://bugs.webkit.org/show_bug.cgi?id=191447 |
| <rdar://problem/30019476> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache): |
| (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse): |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get responseSecurity): Added. |
| (WI.Resource.prototype.get loadedSecurely): Added. |
| (WI.Resource.prototype.updateForResponse): |
| |
| * UserInterface/Views/NetworkResourceDetailView.js: |
| (WI.NetworkResourceDetailView): |
| (WI.NetworkResourceDetailView.prototype.initialLayout): |
| (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier): |
| * UserInterface/Views/NetworkResourceDetailView.css: |
| (.content-view.resource-details .go-to-arrow): Added. |
| (.content-view.resource-details.showing-find-banner .search-highlight): Added. |
| |
| * UserInterface/Views/ResourceSecurityContentView.js: Added. |
| (WI.ResourceSecurityContentView): |
| (WI.ResourceSecurityContentView.prototype.initialLayout): |
| (WI.ResourceSecurityContentView.prototype.layout): |
| (WI.ResourceSecurityContentView.prototype.closed): |
| (WI.ResourceSecurityContentView.prototype.get supportsSearch): |
| (WI.ResourceSecurityContentView.prototype.get numberOfSearchResults): |
| (WI.ResourceSecurityContentView.prototype.get hasPerformedSearch): |
| (WI.ResourceSecurityContentView.prototype.set automaticallyRevealFirstSearchResult): |
| (WI.ResourceSecurityContentView.prototype.performSearch): |
| (WI.ResourceSecurityContentView.prototype.searchCleared): |
| (WI.ResourceSecurityContentView.prototype.revealPreviousSearchResult): |
| (WI.ResourceSecurityContentView.prototype.revealNextSearchResult): |
| (WI.ResourceSecurityContentView.prototype._refreshCetificateSection): |
| (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs): |
| (WI.ResourceSecurityContentView.prototype._revealSearchResult): |
| (WI.ResourceSecurityContentView.prototype._handleResourceResponseReceived): |
| * UserInterface/Views/ResourceSecurityContentView.css: Added. |
| (body[dir] .resource-security > section.certificate > .details): |
| (.resource-security .details .key): |
| (.resource-security .dns-name + .dns-name > .key,): |
| (.resource-security .show-more): |
| (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details): |
| (@media (prefers-dark-interface) .resource-security .details .key): |
| |
| * UserInterface/Views/ResourceCookiesContentView.js: |
| (WI.ResourceCookiesContentView.prototype._refreshRequestCookiesSection): |
| (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection): |
| (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithMessage): Deleted. |
| (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted. |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView.prototype._refreshSummarySection): |
| (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections): |
| (WI.ResourceHeadersContentView.prototype._refreshRequestHeadersSection): |
| (WI.ResourceHeadersContentView.prototype._refreshResponseHeadersSection): |
| (WI.ResourceHeadersContentView.prototype._refreshQueryStringSection): |
| (WI.ResourceHeadersContentView.prototype._refreshRequestDataSection): |
| (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithMessage): Deleted. |
| (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted. |
| (WI.ResourceHeadersContentView.prototype._appendKeyValuePair): Deleted. |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (.resource-headers .h1-status > .key,): |
| (body[dir] .resource-headers > section.error > .details): Deleted. |
| (.resource-headers > section.error .key): Deleted. |
| (.resource-headers .details): Deleted. |
| (.resource-headers .details .pair): Deleted. |
| (body[dir=rtl] .resource-headers .details .pair): Deleted. |
| (.resource-headers .details .key): Deleted. |
| (.resource-headers .value): Deleted. |
| (.resource-headers .go-to-arrow): Deleted. |
| (.resource-headers.showing-find-banner .search-highlight): Deleted. |
| * UserInterface/Views/ResourceDetailsSection.js: |
| (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithMessage): Added. |
| (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithLoadingIndicator): Added. |
| (WI.ResourceDetailsSection.prototype.appendKeyValuePair): Added. |
| * UserInterface/Views/ResourceDetailsSection.css: |
| (.resource-details > section > .details): Added. |
| (.resource-details > section > .details > .pair): Added. |
| (body[dir=rtl] .resource-details > section > .details > .pair): Added. |
| (.resource-details > section > .details > .pair > .key): Added. |
| (.resource-details > section > .details > .pair > .value): Added. |
| (body[dir] .resource-details > section.error > .details): Added. |
| (.resource-details > section.error > .details > .pair > .key): Added. |
| Move commonly used functions/styles from container classes onto this object. |
| |
| * UserInterface/Main.html: |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-12 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should support shift-extending the row selection |
| https://bugs.webkit.org/show_bug.cgi?id=189718 |
| <rdar://problem/44577942> |
| |
| Reviewed by Devin Rousso. |
| |
| Allow the table selection to be extended by shift-clicking a row, or by |
| holding shift and pressing either the up or down arrow key. If both command |
| and shift are pressed, shift is ignored. The selection behavior is modeled |
| after AppKit's NSTableView. |
| |
| * UserInterface/Base/IndexSet.js: |
| (WI.IndexSet.prototype.addRange): |
| (WI.IndexSet.prototype.deleteRange): |
| (WI.IndexSet.prototype.equals): |
| (WI.IndexSet.prototype.difference): |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.set allowsMultipleSelection): |
| (WI.Table.prototype.reloadData): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype._handleKeyDown): |
| Holding shift and pressing either the up or down arrow key extends the |
| selection to the next unselected row adjacent to the anchor row, or causes |
| the anchor row to be deselected, decreasing the selection. The table chooses |
| the action to take based on the direction of movement (up or down), and |
| the currently selected rows. |
| |
| (WI.Table.prototype._selectRowsFromArrowKey): |
| (WI.Table.prototype._handleMouseDown.normalizeRange): |
| (WI.Table.prototype._handleMouseDown): |
| Clicking a row while holding down shift extends the selection to include |
| the rows between the anchor row (exclusive) and clicked row (inclusive). |
| The anchor row is equal to the value of `_selectedRowIndex` prior to |
| clicking a new row. |
| |
| (WI.Table.prototype._deselectAllAndSelect): |
| (WI.Table.prototype._removeRows): |
| (WI.Table.prototype._toggleSelectedRowStyle): |
| (WI.Table.prototype._updateSelectedRows): |
| Helper method for updating the selection to the specified rows, and updating |
| DOM styles for rows that are added to or removed from the selection. |
| |
| 2018-11-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: inline swatches don't work when Multiple Properties Selection is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191165 |
| <rdar://problem/45737972> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField): |
| `click` is fired after `mouseup` and inline swatches are activated by `click` event. |
| Changing this to `click` allows swatches to activate before editing starts. |
| |
| (WI.SpreadsheetTextField.prototype._handleMouseDown): |
| Clicking on the field that is being edited should't restart editing. It should move the text caret. |
| |
| 2018-11-12 Don Olmstead <don.olmstead@sony.com> |
| |
| Shipped PNGs include bad profiles: iCCP: known incorrect sRGB profile |
| https://bugs.webkit.org/show_bug.cgi?id=189230 |
| <rdar://problem/44050379> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Runs all png images through zopflipng. This results in a smaller file |
| size and takes care of this issue as a byproduct. |
| |
| * UserInterface/Images/ApplicationCache.png: |
| * UserInterface/Images/ApplicationCache@2x.png: |
| * UserInterface/Images/ApplicationCacheManifest.png: |
| * UserInterface/Images/ApplicationCacheManifest@2x.png: |
| * UserInterface/Images/Breakpoint.png: |
| * UserInterface/Images/Breakpoint@2x.png: |
| * UserInterface/Images/BreakpointInactive.png: |
| * UserInterface/Images/BreakpointInactive@2x.png: |
| * UserInterface/Images/ClippingCSS.png: |
| * UserInterface/Images/ClippingCSS@2x.png: |
| * UserInterface/Images/ClippingCSSLarge.png: |
| * UserInterface/Images/ClippingCSSLarge@2x.png: |
| * UserInterface/Images/ClippingGeneric.png: |
| * UserInterface/Images/ClippingGeneric@2x.png: |
| * UserInterface/Images/ClippingGenericLarge.png: |
| * UserInterface/Images/ClippingGenericLarge@2x.png: |
| * UserInterface/Images/ClippingJS.png: |
| * UserInterface/Images/ClippingJS@2x.png: |
| * UserInterface/Images/ClippingJSLarge.png: |
| * UserInterface/Images/ClippingJSLarge@2x.png: |
| * UserInterface/Images/ColorIcon.png: |
| * UserInterface/Images/ColorIcon@2x.png: |
| * UserInterface/Images/Cookie.png: |
| * UserInterface/Images/Cookie@2x.png: |
| * UserInterface/Images/Database.png: |
| * UserInterface/Images/Database@2x.png: |
| * UserInterface/Images/DatabaseTable.png: |
| * UserInterface/Images/DatabaseTable@2x.png: |
| * UserInterface/Images/DocumentCSS.png: |
| * UserInterface/Images/DocumentCSS@2x.png: |
| * UserInterface/Images/DocumentCSSLarge.png: |
| * UserInterface/Images/DocumentCSSLarge@2x.png: |
| * UserInterface/Images/DocumentFont.png: |
| * UserInterface/Images/DocumentFont@2x.png: |
| * UserInterface/Images/DocumentFontLarge.png: |
| * UserInterface/Images/DocumentFontLarge@2x.png: |
| * UserInterface/Images/DocumentGL.png: |
| * UserInterface/Images/DocumentGL@2x.png: |
| * UserInterface/Images/DocumentGeneric.png: |
| * UserInterface/Images/DocumentGeneric@2x.png: |
| * UserInterface/Images/DocumentGenericLarge.png: |
| * UserInterface/Images/DocumentGenericLarge@2x.png: |
| * UserInterface/Images/DocumentImage.png: |
| * UserInterface/Images/DocumentImage@2x.png: |
| * UserInterface/Images/DocumentImageLarge.png: |
| * UserInterface/Images/DocumentImageLarge@2x.png: |
| * UserInterface/Images/DocumentJS.png: |
| * UserInterface/Images/DocumentJS@2x.png: |
| * UserInterface/Images/DocumentJSLarge.png: |
| * UserInterface/Images/DocumentJSLarge@2x.png: |
| * UserInterface/Images/DocumentMarkup.png: |
| * UserInterface/Images/DocumentMarkup@2x.png: |
| * UserInterface/Images/DocumentMarkupLarge.png: |
| * UserInterface/Images/DocumentMarkupLarge@2x.png: |
| * UserInterface/Images/FolderGeneric.png: |
| * UserInterface/Images/FolderGeneric@2x.png: |
| * UserInterface/Images/GradientStop.png: |
| * UserInterface/Images/GradientStop@2x.png: |
| * UserInterface/Images/GradientStopSelected.png: |
| * UserInterface/Images/GradientStopSelected@2x.png: |
| * UserInterface/Images/HoverMenuButton.png: |
| * UserInterface/Images/HoverMenuButton@2x.png: |
| * UserInterface/Images/InstructionPointer.png: |
| * UserInterface/Images/InstructionPointer@2x.png: |
| * UserInterface/Images/LocalStorage.png: |
| * UserInterface/Images/LocalStorage@2x.png: |
| * UserInterface/Images/SessionStorage.png: |
| * UserInterface/Images/SessionStorage@2x.png: |
| * UserInterface/Images/SliderThumb.png: |
| * UserInterface/Images/SliderThumb@2x.png: |
| * UserInterface/Images/SliderThumbPressed.png: |
| * UserInterface/Images/SliderThumbPressed@2x.png: |
| * UserInterface/Images/WebSocket.png: |
| * UserInterface/Images/WebSocket@2x.png: |
| * UserInterface/Images/WebSocketLarge.png: |
| * UserInterface/Images/WebSocketLarge@2x.png: |
| * UserInterface/Images/WorkerScript.png: |
| * UserInterface/Images/WorkerScript@2x.png: |
| * UserInterface/Images/WorkerScriptLarge.png: |
| * UserInterface/Images/WorkerScriptLarge@2x.png: |
| |
| 2018-11-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Pressing Tab or Enter should start editing focused property |
| https://bugs.webkit.org/show_bug.cgi?id=191510 |
| <rdar://problem/45970897> |
| |
| Reviewed by Dean Jackson. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| |
| 2018-11-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Start moving toward better multi-target support |
| https://bugs.webkit.org/show_bug.cgi?id=191345 |
| |
| Reviewed by Devin Rousso. |
| |
| This change continues the move toward better multi-target support |
| by explicitly using explicit target agents in more places, and |
| converting generalized feature checks into target agnostic versions |
| that use the new InspectorBackend.domains, which does not vary based |
| on the connected targets / debuggable type. |
| |
| I also audited uses of RuntimeAgent, ConsoleAgent, and DebuggerAgent |
| for better multi-target support since these agents should already |
| have complete multi-target support. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.initialize): |
| Move explicitly to target.Agent feature checks with a known target. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange): |
| Move explicitly to target.DebuggerAgent for feature checks with a known target. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.initializeTarget): |
| Move explicitly to target.NetworkAgent for feature checks with a known target. |
| |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager.prototype.initializeTarget): |
| (WI.RuntimeManager.prototype.saveResult): |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.updatePreview): |
| (WI.RemoteObject.prototype.getDisplayablePropertyDescriptors): |
| (WI.RemoteObject.prototype.deprecatedGetDisplayableProperties): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator): |
| (WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator): |
| Move explicitly to target.RuntimeAgent for feature checks with a known target. |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions.initializeCSSCompletions): |
| Move explicitly to target.CSSAgent for feature checks with a known target. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| Use the DebuggerAgent from the target associated with the DOMNode's |
| remote object instead of assuming the main target. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createGeneralSettingsView): |
| Update the ConsoleAgent setting on all targets that support it. |
| |
| * UserInterface/Views/BreakpointActionView.js: |
| (WI.BreakpointActionView): |
| All backends support BreakpointActionType, the assertion can go away. |
| |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype.get navigationItems): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| Include additional `window.FooAgent` checks for these since they will need |
| to be revisited in the future. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.get domains): |
| (InspectorBackendClass.prototype.activateDomain): |
| Expose InspectorBackend.domains.<Domain> for feature checking. |
| |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| (WI.BreakpointPopoverController.prototype._createPopoverContent): |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager): |
| (WI.CSSManager.prototype._mainResourceDidChange): |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._attemptAutoCapturingForFrame): |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| (WI.TimelineManager): |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.startRecording): |
| (WI.Canvas.prototype.recordingFinished): |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WI.ScriptSyntaxTree.functionReturnDivot): |
| * UserInterface/Protocol/DebuggerObserver.js: |
| (WI.DebuggerObserver): |
| * UserInterface/Protocol/NetworkObserver.js: |
| (WI.NetworkObserver.prototype.requestWillBeSent): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): |
| * UserInterface/Views/NetworkTimelineView.js: |
| (WI.NetworkTimelineView): |
| * UserInterface/Views/ResourceDetailsSidebarPanel.js: |
| (WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse): |
| * UserInterface/Views/WebSocketContentView.js: |
| (WI.WebSocketContentView): |
| (WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest): |
| (WI.DebuggerManager.prototype.debuggerDidResume): |
| Feature check in a target agnostic way. |
| |
| 2018-11-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: ResourceQueryController should early return when query is longer than search string |
| https://bugs.webkit.org/show_bug.cgi?id=191436 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/ResourceQueryController.js: |
| |
| * UserInterface/Models/ResourceQueryMatch.js: |
| (WI.ResourceQueryMatch): |
| Drive-by fixes. |
| |
| 2018-11-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Uncaught Exception: undefined is not an object (evaluating 'treeElement.parent.removeChild') |
| https://bugs.webkit.org/show_bug.cgi?id=191454 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype._scriptsCleared): |
| This was intending to iterate the Map's values, which are tree elements. |
| |
| 2018-11-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Potential for watch expressions to never show results |
| https://bugs.webkit.org/show_bug.cgi?id=191438 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.js: |
| (WI.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection): |
| If there was no object don't bail, continue and resolve the Promise. |
| In this case we can fallback to show `undefined`. This code might not be |
| reachable right now, but is wrong as is. |
| |
| 2018-11-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Debugger Popover does not work when paused in Worker |
| https://bugs.webkit.org/show_bug.cgi?id=191342 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate): |
| (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression): |
| When receiving the result of the popover evaluation associate the RemoteObject with |
| the target we used to evaluate (such as the Debugger call frame), not the target |
| associated with the editor. |
| |
| 2018-11-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Restrict domains at the target level instead of only at the window level |
| https://bugs.webkit.org/show_bug.cgi?id=191344 |
| |
| Reviewed by Devin Rousso. |
| |
| With this change the list of agents available on the target should accurately |
| reflect the domains that target supports. We should start moving in the direction |
| that if we are checking for, or using, a feature, we should ideally be using |
| code that looks like `target.FooAgent.method` and not `window.FooAgent` or |
| an unprefixed `FooAgent`. More changes to follow. |
| |
| * UserInterface/Controllers/AppControllerBase.js: |
| * UserInterface/Base/DebuggableType.js: Added. |
| Extract debuggable type enum out into its own file loaded early on. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| Load DebuggableType.js. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.initializeTarget): |
| With these changes target.ServiceWorker is only exposed on a ServiceWorker target. |
| |
| * UserInterface/Protocol/Connection.js: |
| (InspectorBackend.WorkerConnection): |
| With these changes Target.js restricts the domains exposed on the Target so just |
| clone all of the agents (we don't need to do anything special). |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.activateDomain): |
| Update supported domains per-type. If there is no explicit availability |
| then the domain is supported on all types. |
| |
| (InspectorBackendClass.prototype.supportedDomainsForDebuggableType): |
| Get supported domains per-type. |
| |
| (InspectorBackendClass.prototype.get workerSupportedDomains): Deleted. |
| (InspectorBackendClass.prototype.workerSupportedDomain): Deleted. |
| workerSupportedDomains is now unnecessary. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype._supportedDomainsForTargetType): |
| Restrict supported domains for this target based on its type. |
| |
| * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: |
| * Versions/Inspector-iOS-10.3.json: |
| * Versions/Inspector-iOS-11.0.json: |
| * Versions/Inspector-iOS-11.3.json: |
| * Versions/Inspector-iOS-12.0.json: |
| Regenerate protocol files now that workerSupportedDomains is unnecessary |
| and explicit availability has been added to other domains. |
| |
| 2018-11-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r236705): Web Inspector: wrong text color for selected DataGrid row |
| https://bugs.webkit.org/show_bug.cgi?id=191405 |
| <rdar://problem/45893283> |
| |
| Reviewed by Matt Baker. |
| |
| Selection background color for both Dark Mode mode and Light Mode is dark blue. |
| The text color for both cases should be white. |
| |
| * UserInterface/Views/DataGrid.css: |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input): |
| |
| 2018-11-07 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Fix "Javascript" => "JavaScript" enum in protocol generated objects |
| https://bugs.webkit.org/show_bug.cgi?id=191340 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.fromPayload): |
| Insert a missing break statement for the WebGPU case. |
| |
| * UserInterface/Models/MemoryTimelineRecord.js: |
| (WI.MemoryTimelineRecord.memoryCategoriesFromProtocol): |
| Use new enum name. |
| |
| * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js: |
| * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: |
| Update enums with new generator. |
| |
| 2018-11-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION: Web Inspector: Popovers drawing incorrectly in Network Tab (clicking between a few items) |
| https://bugs.webkit.org/show_bug.cgi?id=191323 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype._drawBackground): |
| Save and restore the context state between updates. Something |
| was affecting the clearRect, making it so that it didn't actually |
| clear the entire rect each time. |
| |
| 2018-11-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: turn off Start button when all tests are removed |
| https://bugs.webkit.org/show_bug.cgi?id=191235 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): |
| |
| 2018-11-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table selection should not require that rows be in the cache |
| https://bugs.webkit.org/show_bug.cgi?id=190993 |
| <rdar://problem/45613812> |
| |
| Reviewed by Devin Rousso. |
| |
| Deselecting a table row shouldn't depend on it being in the cache. This |
| allows us to implement select all, and other kinds of bulk selection |
| actions that affect rows that haven't been revealed. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.deselectRow): |
| |
| 2018-11-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: show save/restore stack for recorded 2D Canvases |
| https://bugs.webkit.org/show_bug.cgi?id=175283 |
| <rdar://problem/34040756> |
| |
| Reviewed by Matt Baker. |
| |
| Instead of using plain objects for holding the `WI.Recording`'s state, use a model object |
| so that more data can be passed around. When visualizing the state, show any previously |
| saved states in a `WI.DetailsSection` underneath the current state. If there are no saved |
| states (meaning there is only the current state), don't use a `WI.DetailsSection`. |
| |
| * UserInterface/Models/RecordingState.js: Added. |
| (WI.RecordingState): |
| (WI.RecordingState.fromContext): |
| (WI.RecordingState.async swizzleInitialState): |
| (WI.RecordingState.prototype.get source): |
| (WI.RecordingState.prototype.has): |
| (WI.RecordingState.prototype.get return): |
| (WI.RecordingState.prototype.toJSON): |
| (WI.RecordingState.prototype.[Symbol.iterator]): |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.prototype.async _process): |
| (WI.Recording.prototype.async _swizzleState): Deleted. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process): |
| (WI.RecordingAction.deriveCurrentState): Deleted. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._generateContentCanvas2D): |
| |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: |
| (WI.RecordingStateDetailsSidebarPanel): |
| (WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): |
| (WI.RecordingStateDetailsSidebarPanel.prototype.sizeDidChange): Added. |
| (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D): |
| (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D.isColorProperty): Deleted. |
| (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D.createInlineSwatch): Deleted. |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.css: |
| (.sidebar > .panel.details.recording-state > .content .details-section > .header .source): Added. |
| (.sidebar > .panel.details.recording-state > .content .data-grid tr.modified): Added. |
| (.sidebar > .panel.details.recording-state > .content .data-grid tr:not(.selected).non-standard .name-column): Added. |
| (.sidebar > .panel.details.recording-state > .content .data-grid tr:not(.selected) .unavailable): Added. |
| (.sidebar > .panel.details.recording-state > .content .data-grid .inline-swatch): Added. |
| (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified): Deleted. |
| (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected).non-standard): Deleted. |
| (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected) .unavailable): Deleted. |
| (.sidebar > .panel.details.recording-state > .content > .data-grid .inline-swatch): Deleted. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-03 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: capture changes to <canvas> that would affect the recorded context |
| https://bugs.webkit.org/show_bug.cgi?id=190854 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction): |
| (WI.RecordingAction.isFunctionForType): |
| (WI.RecordingAction.constantNameForParameter): |
| (WI.RecordingAction.prototype.get contextReplacer): Added. |
| (WI.RecordingAction.prototype.async.swizzle): |
| (WI.RecordingAction.prototype.apply): |
| Create a constant list of actions for each recording type that need to replace the context |
| with a different value before being applied (e.g. `width` should be applied to the |
| `context`'s `canvas` instead of directly to the `context`). |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._generateContentCanvas2D.actionModifiesPath): Added. |
| (WI.RecordingContentView.prototype._generateContentCanvas2D): |
| (WI.RecordingContentView._actionModifiesPath): Deleted. |
| Generate the path context after the actions are applied to the preview context so that the |
| final width/height are known and can be used. This is needed because changing the |
| width/height causes the content to be erased. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._generateDOM): |
| (WI.RecordingActionTreeElement._classNameForAction): |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.tree-outline:focus .item.action.selected:not(.invalid, .initial-state, .has-context-replacer) > .icon): Added. |
| (.item.action > .titles .context-replacer::after): Added. |
| (.item.action.has-context-replacer > .icon): Added. |
| (@media (prefers-dark-interface) .item.action:not(.invalid, .initial-state, .has-context-replacer) > .icon): Added. |
| (.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted. |
| (@media (prefers-dark-interface) .item.action:not(.initial-state) > .icon): Deleted. |
| (@media (prefers-dark-interface) .tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon): Deleted. |
| Add the context replacer text to the beginning of the action's name if it exists. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype._refreshPixelSize): |
| (WI.CanvasContentView.prototype._updatePixelSize): Deleted. |
| Update preview image when the canvas' size changes. |
| |
| 2018-11-02 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: support multiple selection/deletion of cookie records |
| https://bugs.webkit.org/show_bug.cgi?id=66381 |
| <rdar://problem/19281525> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView): |
| (WI.CookieStorageContentView.prototype.get scrollableElements): |
| (WI.CookieStorageContentView.prototype.tableNumberOfRows): |
| (WI.CookieStorageContentView.prototype.tableSortChanged): |
| (WI.CookieStorageContentView.prototype.tableCellContextMenuClicked): |
| (WI.CookieStorageContentView.prototype.tableDidRemoveRows): |
| (WI.CookieStorageContentView.prototype.tablePopulateCell): |
| (WI.CookieStorageContentView.prototype.initialLayout): |
| (WI.CookieStorageContentView.prototype._generateSortComparator): |
| (WI.CookieStorageContentView.prototype._refreshButtonClicked): |
| (WI.CookieStorageContentView.prototype._reloadCookies): |
| (WI.CookieStorageContentView.prototype._updateSort): |
| (WI.CookieStorageContentView.prototype._handleTableKeyDown): |
| (WI.CookieStorageContentView.prototype.update): Deleted. |
| (WI.CookieStorageContentView.prototype._rebuildTable): Deleted. |
| (WI.CookieStorageContentView.prototype._sortDataGrid.localeCompare): Deleted. |
| (WI.CookieStorageContentView.prototype._sortDataGrid.numberCompare): Deleted. |
| (WI.CookieStorageContentView.prototype._sortDataGrid.expiresCompare): Deleted. |
| (WI.CookieStorageContentView.prototype._sortDataGrid): Deleted. |
| (WI.CookieStorageContentView.prototype._deleteCallback): Deleted. |
| Replace DataGrid with Table. The content view serves as the table |
| delegate and data source, and handles delete and backspace key events |
| to allow deleting the selected cookies. Cookies may also be deleted from |
| the table context menu and a new button in the navigation bar. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.isRowSelected): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype.removeRow): |
| (WI.Table.prototype._getOrCreateRow): |
| (WI.Table.prototype._handleMouseDown): |
| (WI.Table.prototype._removeRows): |
| (WI.Table.prototype._isRowSelected): Deleted. |
| Make `isSelectedRow` public. It is more convenient and efficient than |
| calling `Table.prototype.selectedRows.includes(rowIndex)`. |
| |
| 2018-11-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: View: introduce a didLayoutSubtree |
| https://bugs.webkit.org/show_bug.cgi?id=191176 |
| |
| Reviewed by Matt Baker. |
| |
| Introduce logic to allow subclasses of `WI.View` to perform logic after every `WI.View` in |
| their subtree has finished `layout`. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype.didLayoutSubtree): Added. |
| (WI.View.prototype._layoutSubtree): |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.layout): |
| (WI.NetworkTableContentView.prototype.didLayoutSubtree): Added. |
| |
| 2018-11-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: remove unnecessary media event tracking |
| https://bugs.webkit.org/show_bug.cgi?id=191174 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Renames "Group by Node" to "Group Media Requests" for clarity. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype.showRepresentedObject): |
| (WI.NetworkTableContentView.prototype.networkDetailViewClose): |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| (WI.NetworkTableContentView.prototype.layout): |
| (WI.NetworkTableContentView.prototype._entryForDOMNode): |
| (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): |
| (WI.NetworkTableContentView.prototype._restoreSelectedRow): |
| (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): |
| (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): |
| (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table .data-container .cell.name .range): Added. |
| (.network-table .data-container .cell.name .range::before): Added. |
| (.network-table:focus .data-container li.selected .cell.name .range): Added. |
| (@media (prefers-dark-interface) .network-table .data-container .cell.name .range): Added. |
| Always display the "Byte Range" title as a "subtitle", regardless of the media requests |
| setting being toggled. |
| Drive-by: update the position of the waterfall popover whenever the time range changes. |
| Drive-by: close the details view if a node is selected and the media requests setting is |
| turned off. |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype.resize): Added. |
| (WI.Popover.prototype.handleEvent): |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-11-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener') |
| https://bugs.webkit.org/show_bug.cgi?id=191020 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TimelineRuler.js: |
| (WI.TimelineRuler): |
| Since `undefined` is not a number, it isn't less than `0`, which caused us to divide by |
| `undefined` (equivalent to dividing by `0`), resulting in `NaN`. |
| |
| 2018-11-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Uncaught Exception: TypeError: undefined is not an object (evaluating 'WI.modifierKeys.metaKey') (at ScopeBarItem.js:87:67) |
| https://bugs.webkit.org/show_bug.cgi?id=191173 |
| |
| Reviewed by Devin Rousso. |
| |
| WI.modifierKeys was accessed before it was initialized. Move it from WI.contentLoaded to WI.loaded, |
| which happens before WI.contentLoaded. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| |
| 2018-11-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r237652): Web Inspector: dumpInspectorProtocolMessages is always enabled |
| https://bugs.webkit.org/show_bug.cgi?id=191161 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/InspectorBackend.js: |
| (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages): |
| |
| 2018-11-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Toggle selected properties by pressing Space or Command+/ |
| https://bugs.webkit.org/show_bug.cgi?id=181145 |
| <rdar://problem/36203388> |
| |
| Reviewed by Brian Burg. |
| |
| Pressing Space key or Command-/ toggles (comments out or uncomments) selected properties. |
| |
| This patch only works with "Enable Selection of Multiple Properties" checked. It shouldn't introduce any |
| changes when this setting is unchecked. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get selectionRange): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty): |
| (WI.SpreadsheetStyleProperty.prototype.update): Renamed from _update. |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| (WI.SpreadsheetStyleProperty.prototype.applyFilter): |
| (WI.SpreadsheetStyleProperty.prototype.handleCopyEvent): |
| Make `update` method public. No other changes were made. |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: create a setting for auto-recording newly created contexts |
| https://bugs.webkit.org/show_bug.cgi?id=190856 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.supportsRecordingAutoCapture): Added. |
| (WI.CanvasManager.prototype.setRecordingAutoCaptureFrameCount): Added. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.startRecording): |
| (WI.Canvas.prototype.recordingStarted): |
| (WI.Canvas.prototype.recordingFinished): |
| |
| * UserInterface/Models/Recording.js: |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype.get navigationItems): |
| (WI.CanvasOverviewContentView.prototype.initialLayout): Added. |
| (WI.CanvasOverviewContentView.prototype.attached): |
| (WI.CanvasOverviewContentView.prototype.detached): |
| (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): Added. |
| (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize): Added. |
| (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput): Added. |
| (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureCheckedDidChange): Added. |
| (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureEnabledChanged): Added. |
| (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged): Added. |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.navigation-bar > .item.canvas-recording-auto-capture > label): Added. |
| (.navigation-bar > .item.canvas-recording-auto-capture > label > input): Added. |
| (.navigation-bar > .item.canvas-recording-auto-capture > label > input::-webkit-inner-spin-button): Added. |
| (.popover-content > .tree-outline .item.recording > .icon): Deleted. |
| (.popover-content > .tree-outline .item.recording:hover): Deleted. |
| (.popover-content > .tree-outline .item.recording:hover > .icon): Deleted. |
| Drive-by: removed unused CSS rules. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype._updateProgressView): |
| (WI.CanvasContentView.prototype._updateViewRelatedItems): |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype._recordingImportedOrStopped): |
| |
| * UserInterface/Views/CheckboxNavigationItem.js: |
| (WI.CheckboxNavigationItem): |
| (WI.CheckboxNavigationItem.prototype._handleLabelClick): Added. |
| |
| * UserInterface/Base/Setting.js: |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: display low-power enter/exit events in Timelines and Network node waterfalls |
| https://bugs.webkit.org/show_bug.cgi?id=190641 |
| <rdar://problem/45319049> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Protocol/DOMObserver.js: |
| (WI.DOMObserver.prototype.videoLowPowerChanged): Added. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.videoLowPowerChanged): Added. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode): |
| (WI.DOMNode.prototype.get lowPowerRanges): Added. |
| (WI.DOMNode.prototype.videoLowPowerChanged): Added. |
| (WI.DOMNode.prototype.canEnterLowPowerMode): Added. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateDomainCell): |
| (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): |
| (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged): Added. |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .area): |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .area.dom-fullscreen): Added. |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .area.low-power): Added. |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-fullscreen): Deleted. |
| |
| * UserInterface/Views/DOMNodeEventsContentView.js: |
| (WI.DOMNodeEventsContentView): |
| (WI.DOMNodeEventsContentView.prototype.initialLayout): |
| (WI.DOMNodeEventsContentView.prototype.closed): Deleted. |
| (WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent): Deleted. |
| |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| (WI.DOMEventsBreakdownView): |
| (WI.DOMEventsBreakdownView.prototype.initialLayout): |
| (WI.DOMEventsBreakdownView.prototype.layout): Added. |
| (WI.DOMEventsBreakdownView.prototype._handleDOMNodeDidFireEvent): Added. |
| (WI.DOMEventsBreakdownView.prototype._handleDOMNodeLowPowerChanged): Added. |
| (WI.DOMEventsBreakdownView.prototype.addEvent): Deleted. |
| (WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime): Deleted. |
| (WI.DOMEventsBreakdownView.prototype._populateTable): Deleted. |
| * UserInterface/Views/DOMEventsBreakdownView.css: |
| (.dom-events-breakdown .graph > .area): Added. |
| (.dom-events-breakdown .graph > .area.fullscreen): |
| (.dom-events-breakdown .graph > .area.low-power): Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: save imported audits across WebInspector sessions |
| https://bugs.webkit.org/show_bug.cgi?id=190858 |
| <rdar://problem/45527625> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/ObjectStore.js: Added. |
| (WI.ObjectStore): |
| (WI.ObjectStore.supported): |
| (WI.ObjectStore._open): |
| (WI.ObjectStore.get _databaseName): |
| (WI.ObjectStore.prototype.associateObject): |
| (WI.ObjectStore.prototype.async getAll): |
| (WI.ObjectStore.prototype.async add): |
| (WI.ObjectStore.prototype.async addObject): |
| (WI.ObjectStore.prototype.async delete): |
| (WI.ObjectStore.prototype.async deleteObject): |
| (WI.ObjectStore.prototype._resolveKeyPath): |
| (WI.ObjectStore.prototype.async _operation.listener): |
| (WI.ObjectStore.prototype.async _operation): |
| Wrapper for a global `IndexedDB` instance for all of WebInspector (per level). Instances of |
| `WI.ObjectStore` are able to control a given `IDBObjectStore` using a promise-based API. |
| |
| *NOTE*: due to the constraint that `IDBObjectStore`s are only able to be created when the |
| owner `IndexedDB` is "upgrade"d, all `WI.ObjectStore` must be declared before the database |
| is opened for the first time. Additionally, any time a new `WI.ObjectStore` is added, the |
| `version` needs to be incremented to ensure that the "upgrade" event fires. |
| |
| To use any of the `*Object` functions, one must implement a `toJSON` on the object provided. |
| This is so that `WI.ObjectStore` is able to add the resulting identifier value to the owner |
| object while storing its `toJSON` value in the IndexedDB (e.g. for objects that have cycles). |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.import): |
| (WI.AuditManager.prototype.loadStoredTests): Added. |
| (WI.AuditManager.prototype.removeTest): Added. |
| (WI.AuditManager.prototype._addTest): |
| |
| * UserInterface/Views/AuditTabContentView.js: |
| (WI.AuditTabContentView.prototype.initialLayout): Added. |
| Attempt to load stored audits when the Audit tab is first shown (lazy-load). |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: |
| (WI.AuditNavigationSidebarPanel.prototype.initialLayout): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): Added. |
| |
| * UserInterface/Views/AuditTreeElement.js: |
| (WI.AuditTreeElement.prototype.ondelete): |
| Only allow top-level audits to be deleted, as that is what matches the `WI.ObjectStore`. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| 2018-10-31 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Move a few remaining global WI settings to WI.settings |
| https://bugs.webkit.org/show_bug.cgi?id=191137 |
| |
| Reviewed by Brian Burg. |
| |
| Move and better name some of the WI.settings created in Main.js |
| to WI.settings, alongside other global settings. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| Move settings, and register for settings changes in contentLoaded. |
| |
| * UserInterface/Base/Setting.js: |
| New settings, and sort values. |
| |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| Update setting values for tests. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.initializeTarget): |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager.prototype.initializeTarget): |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode.prototype.get children): |
| (WI.DOMNode.prototype.get nextSibling): |
| (WI.DOMNode.prototype.get previousSibling): |
| (WI.DOMNode.prototype.get childNodeCount): |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.initialize): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.closed): |
| (WI.DOMTreeContentView.prototype._togglePaintFlashing): |
| (WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged): |
| (WI.DOMTreeContentView.prototype._showShadowDOMSettingChanged): |
| (WI.DOMTreeContentView.prototype._toggleShowsShadowDOMSetting): |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline): |
| (WI.DOMTreeOutline.prototype.close): |
| (WI.DOMTreeOutline.prototype._revealAndSelectNode): |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| (WI.LayerTreeDetailsSidebarPanel.prototype.initialLayout): |
| (WI.LayerTreeDetailsSidebarPanel.prototype._updateDisplayWithLayers): |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView): |
| (WI.Layers3DContentView.prototype.closed): |
| (WI.Layers3DContentView.prototype._showPaintRectsSettingChanged): |
| (WI.Layers3DContentView.prototype._togglePaintFlashing): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.closed): |
| (WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged): |
| (WI.NetworkTableContentView.prototype._toggleDisableResourceCache): |
| * UserInterface/Views/ScriptContentView.js: |
| (WI.ScriptContentView): |
| (WI.ScriptContentView.prototype.closed): |
| (WI.ScriptContentView.prototype._contentDidPopulate): |
| (WI.ScriptContentView.prototype._enableControlFlowProfilerSettingChanged): |
| (WI.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.shown): |
| (WI.SourceCodeTextEditor.prototype._proceedPopulateWithContent): |
| (WI.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState): |
| (WI.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled): |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView): |
| (WI.TextResourceContentView.prototype.closed): |
| (WI.TextResourceContentView.prototype._contentDidPopulate): |
| (WI.TextResourceContentView.prototype._enableControlFlowProfilerSettingChanged): |
| (WI.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged): |
| Renamed setting. |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles: missing contextmenu items for links |
| https://bugs.webkit.org/show_bug.cgi?id=191021 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._renderValue): |
| (WI.SpreadsheetStyleProperty.prototype._handleLinkContextMenu): Added. |
| If the token is subtype of "link", add contextmenu items to the wrapper element. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForURL.showResourceWithOptions): |
| (WI.appendContextMenuItemsForURL): |
| Drive-by: don't assume that `options` will be provided. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-10-31 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: implement copying and deletion of multiple properties |
| https://bugs.webkit.org/show_bug.cgi?id=191037 |
| <rdar://problem/45650078> |
| |
| Reviewed by Brian Burg. |
| |
| This patch should only work with "Enable Selection of Multiple Properties" checked. It shouldn't introduce any |
| changes when this setting is unchecked. |
| |
| Mousedown on a property (1) and moving the mouse cursor to another property (2) should select properties 1, 2, and |
| all properties between them until mouseup is fired. |
| |
| Once selected: |
| - Pressing Command-C should copy the selected properties. |
| - Pressing Delete should remove the properties. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.get formattedText): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor): |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property): |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected): |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus): |
| (@media (prefers-dark-interface)): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.deselectProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseLeave): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._hasSelectedProperties): |
| Property selection is defined as two numbers: anchorIndex and focusIndex. |
| The property with focusIndex is actually focused. The focus outline is replaced by a more subtle left blue border. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration.selecting,): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyBlur): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseLeave): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowMouseUp): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty): |
| Implement copying the same way it's done for DataGrid: by adding copyHandler property to the focused element. |
| Add `tabIndex=-1` so the property element can be focused. |
| |
| (WI.SpreadsheetStyleProperty.prototype.get property): |
| (WI.SpreadsheetStyleProperty.prototype.get selected): |
| (WI.SpreadsheetStyleProperty.prototype.set selected): |
| (WI.SpreadsheetStyleProperty.prototype.remove): |
| (WI.SpreadsheetStyleProperty.prototype.updateStatus): |
| (WI.SpreadsheetStyleProperty.prototype.handleCopyEvent): |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): |
| (WI.SpreadsheetStyleProperty.prototype._handleNamePaste): |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: attempt to re-link DOM nodes for imported results |
| https://bugs.webkit.org/show_bug.cgi?id=191044 |
| <rdar://problem/45687364> |
| |
| Reviewed by Brian Burg. |
| |
| When importing a `WI.AuditTestCaseResult`, attempt to `querySelector` for each item in |
| `data.domNodes`. If a node is found, replace it with that node and show a tree instead. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.async fromPayload): Added. |
| (WI.AuditTestCase.fromPayload): Deleted. |
| |
| * UserInterface/Models/AuditTestGroup.js: |
| (WI.AuditTestGroup.async fromPayload): Added. |
| (WI.AuditTestGroup.fromPayload): Deleted. |
| |
| * UserInterface/Models/AuditTestCaseResult.js: |
| (WI.AuditTestCaseResult.async fromPayload): Added. |
| (WI.AuditTestCaseResult.fromPayload): Deleted. |
| |
| * UserInterface/Models/AuditTestGroupResult.js: |
| (WI.AuditTestGroupResult.async fromPayload): Added. |
| (WI.AuditTestGroupResult.fromPayload): Deleted. |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager.prototype.import): |
| |
| 2018-10-31 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Follow-up review comment to r237652. |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| |
| 2018-10-31 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Separate target initialization from frontend initialization |
| https://bugs.webkit.org/show_bug.cgi?id=191052 |
| <rdar://problem/45658384> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.performOneTimeFrontendInitializationsUsingTarget): |
| Create the targets after the rest of frontend initialization. This is a step |
| toward a frontend opening and being told about multiple targets instead of |
| knowing in advance a single target it is connected to. All backend |
| messages during frontend initialization now happen with an explicit target. |
| |
| * UserInterface/Controllers/ApplicationCacheManager.js: |
| (WI.ApplicationCacheManager): |
| (WI.ApplicationCacheManager.prototype.initializeTarget): |
| (WI.ApplicationCacheManager.prototype.initialize): |
| * UserInterface/Controllers/CSSManager.js: |
| (WI.CSSManager): |
| (WI.CSSManager.prototype.initializeTarget): |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager): |
| (WI.CanvasManager.prototype.initializeTarget): |
| * UserInterface/Controllers/ConsoleManager.js: |
| (WI.ConsoleManager): |
| (WI.ConsoleManager.prototype.initializeLogChannels): |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager): |
| (WI.DOMManager.prototype.initializeTarget): |
| * UserInterface/Controllers/DOMStorageManager.js: |
| (WI.DOMStorageManager): |
| (WI.DOMStorageManager.prototype.initializeTarget): |
| * UserInterface/Controllers/DatabaseManager.js: |
| (WI.DatabaseManager): |
| (WI.DatabaseManager.prototype.initializeTarget): |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager): |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.restoreBreakpointsSoon): Deleted. |
| * UserInterface/Controllers/HeapManager.js: |
| (WI.HeapManager.prototype.initializeTarget): |
| * UserInterface/Controllers/IndexedDBManager.js: |
| (WI.IndexedDBManager): |
| (WI.IndexedDBManager.prototype.initializeTarget): |
| * UserInterface/Controllers/LayerTreeManager.js: |
| (WI.LayerTreeManager.prototype.initializeTarget): |
| * UserInterface/Controllers/MemoryManager.js: |
| (WI.MemoryManager.prototype.initializeTarget): |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager): |
| (WI.NetworkManager.prototype.initializeTarget): |
| * UserInterface/Controllers/RuntimeManager.js: |
| (WI.RuntimeManager): |
| (WI.RuntimeManager.prototype.initializeTarget): |
| * UserInterface/Controllers/TargetManager.js: |
| (WI.TargetManager): |
| (WI.TargetManager.prototype.initializeTargetsWithMainTarget): |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager): |
| (WI.TimelineManager.prototype.initializeTarget): |
| (WI.TimelineManager.prototype.set enabledTimelineTypes): |
| (WI.TimelineManager.prototype._updateAutoCaptureInstruments): |
| * UserInterface/Controllers/WorkerManager.js: |
| (WI.WorkerManager): |
| (WI.WorkerManager.prototype.initializeTarget): |
| Move Target initialization out of the constructor into a top level |
| `initializeTarget` function. This will be expected to be called |
| by any target that the frontend connects to. |
| |
| (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange): |
| Drive-by fix. Update all targets if the setting changes. |
| |
| (WI.WorkerManager.prototype.workerCreated): |
| Call initialize on the new target. |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions.initializeCSSCompletions): |
| (WI.CSSCompletions.requestCSSCompletions): Deleted. |
| Rename requestCSSCompletions to initializeCSSCompletions to try |
| and standardize on "initialize" being used for most frontend one |
| time initialization tasks. This being one such operation that |
| only needs to be performed once on a target that supports it. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target): |
| (WI.Target.prototype.initialize): |
| Perform explicit target initialization, such as initializing |
| the state of all backend domains / agents. This is done by asking |
| each of the managers to do initialization work for this target. |
| |
| (WI.Target.prototype.get ApplicationCacheAgent): |
| (WI.Target.prototype.get CSSAgent): |
| (WI.Target.prototype.get CanvasAgent): |
| (WI.Target.prototype.get ConsoleAgent): |
| (WI.Target.prototype.get DOMAgent): |
| (WI.Target.prototype.get DOMDebuggerAgent): |
| (WI.Target.prototype.get DOMStorageAgent): |
| (WI.Target.prototype.get DatabaseAgent): |
| (WI.Target.prototype.get DebuggerAgent): |
| (WI.Target.prototype.get HeapAgent): |
| (WI.Target.prototype.get IndexedDBAgent): |
| (WI.Target.prototype.get InspectorAgent): |
| (WI.Target.prototype.get LayerTreeAgent): |
| (WI.Target.prototype.get MemoryAgent): |
| (WI.Target.prototype.get NetworkAgent): |
| (WI.Target.prototype.get PageAgent): |
| (WI.Target.prototype.get RecordingAgent): |
| (WI.Target.prototype.get RuntimeAgent): |
| (WI.Target.prototype.get ScriptProfilerAgent): |
| (WI.Target.prototype.get ServiceWorkerAgent): |
| (WI.Target.prototype.get TargetAgent): |
| (WI.Target.prototype.get TimelineAgent): |
| (WI.Target.prototype.get WorkerAgent): |
| Accessors for all of the agents on a Target. |
| |
| * UserInterface/Protocol/WorkerTarget.js: |
| (WI.WorkerTarget): |
| This is now automatically done in the base class. |
| |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| (WI.performOneTimeFrontendInitializationsUsingTarget): |
| New necessary top level hooks, and initialize more like Main.js. |
| |
| 2018-10-31 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: show metadata for results |
| https://bugs.webkit.org/show_bug.cgi?id=190853 |
| <rdar://problem/45527623> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase.prototype.async run): |
| Capture timestamps around the `RunetimeAgent.evaluate` call, as well as the URL of the page. |
| |
| * UserInterface/Models/AuditTestCaseResult.js: |
| (WI.AuditTestCaseResult): |
| (WI.AuditTestCaseResult.fromPayload): |
| (WI.AuditTestCaseResult.prototype.get metadata): Added. |
| (WI.AuditTestCaseResult.prototype.toJSON): |
| |
| * UserInterface/Views/AuditTestCaseContentView.js: |
| (WI.AuditTestCaseContentView.prototype.initialLayout): |
| (WI.AuditTestCaseContentView.prototype.layout): |
| * UserInterface/Views/AuditTestCaseContentView.css: |
| (.content-view.audit-test-case > header h1): Added. |
| (.content-view.audit-test-case > header h1 > img): Added. |
| (.content-view.audit-test-case > header > .metadata): Added. |
| (.content-view.audit-test-case > header > .metadata > .source > time): Added. |
| (.content-view.audit-test-case > header > .metadata > .source > a): Added. |
| (.content-view.audit-test-case > header > .metadata > .duration): Added. |
| (.content-view.audit-test-case > header > h1): Deleted. |
| (.content-view.audit-test-case > header > h1 > img): Deleted. |
| Display any metadata information where the `WI.ScopeBar` is for `WI.AuditTestGroupContentView`s. |
| |
| * UserInterface/Views/AuditTestContentView.css: |
| (.content-view.audit-test > header): |
| (.content-view.audit-test > header > .information): Added. |
| * UserInterface/Views/AuditTestGroupContentView.css: |
| (.content-view.audit-test-group > header): |
| (.content-view.audit-test-group > header > .percentage-pass): |
| (.content-view.audit-test-group > header > .information): Deleted. |
| Move common CSS rules to common parent class. |
| |
| * UserInterface/Base/Utilities.js: |
| |
| 2018-10-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Audit: create Audit Tab |
| https://bugs.webkit.org/show_bug.cgi?id=190754 |
| |
| Reviewed by Matt Baker. |
| |
| Create an Audit tab for running audits on the inspected page. Leverage `Runtime.evaluate` |
| for running the audit tests (arbitrary JavaScript), and use the returned value to generate |
| a preview UI of the results. All tests/results can be exported/imported to formatted JSON: |
| |
| `AuditTestCase` JSON: |
| { |
| "type": "test-case", |
| "name": <string>, |
| <optional> "description": <string>, |
| "test": <stringified JavaScript function>, |
| } |
| |
| `AuditTestGroup` JSON: |
| { |
| "type": "test-group", |
| "name": <string>, |
| <optional> "description": <string>, |
| "tests": [...<AuditTestCase, AuditTestGroup>], |
| } |
| |
| `AuditTestCaseResult` JSON: |
| { |
| "type": "test-case-result", |
| "name": <string>, |
| <optional> "description": <string>, |
| "level": <"pass", "warn", "fail", "error", "unsupported">, |
| "data": { |
| "domNodes": [...<stringified CSS path>], |
| "domAttributes": [...<string>], |
| "errors": [...<string>], |
| }, |
| } |
| |
| `AuditTestGroupResult` JSON: |
| { |
| "type": "test-group-result", |
| "name": <string>, |
| <optional> "description": <string>, |
| "results": [...<AuditTestCaseResult, AuditTestGroupResult>], |
| } |
| |
| More keys may be added in the future (especially for `AuditTestCaseResult.data`). |
| |
| * UserInterface/Controllers/AuditManager.js: |
| (WI.AuditManager): |
| (WI.AuditManager.synthesizeError): Added. |
| (WI.AuditManager.prototype.get tests): Added. |
| (WI.AuditManager.prototype.get results): Added. |
| (WI.AuditManager.prototype.get runningState): Added. |
| (WI.AuditManager.prototype.start): Added. |
| (WI.AuditManager.prototype.stop): Added. |
| (WI.AuditManager.prototype.import): Added. |
| (WI.AuditManager.prototype.export): Added. |
| (WI.AuditManager.prototype._addTest): Added. |
| (WI.AuditManager.prototype._addResult): Added. |
| (WI.AuditManager.prototype.get testSuites): Deleted. |
| (WI.AuditManager.prototype.get reports): Deleted. |
| (WI.AuditManager.prototype.async runAuditTestByRepresentedObject): Deleted. |
| (WI.AuditManager.prototype.reportForId): Deleted. |
| (WI.AuditManager.prototype.removeAllReports): Deleted. |
| (WI.AuditManager.prototype.async _runTestCase): Deleted. |
| |
| * UserInterface/Models/AuditTestBase.js: Added. |
| (WI.AuditTestBases): |
| (WI.AuditTestBases.prototype.get name): |
| (WI.AuditTestBases.prototype.get description): |
| (WI.AuditTestBases.prototype.get runningState): |
| (WI.AuditTestBases.prototype.get result): |
| (WI.AuditTestBases.prototype.async start): |
| (WI.AuditTestBases.prototype.stop): |
| (WI.AuditTestBases.prototype.clearResult): |
| (WI.AuditTestBases.prototype.saveIdentityToCookie): |
| (WI.AuditTestBases.prototype.toJSON): |
| (WI.AuditTestBases.prototype.async run): |
| |
| * UserInterface/Models/AuditTestCase.js: |
| (WI.AuditTestCase): |
| (WI.AuditTestCase.fromPayload): Added. |
| (WI.AuditTestCase.prototype.toJSON): Added. |
| (WI.AuditTestCase.prototype.async run): Added. |
| (WI.AuditTestCase.prototype.async run.setLevel): Added. |
| (WI.AuditTestCase.prototype.async run.addError): Added. |
| (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Added. |
| (WI.AuditTestCase.prototype.async run.checkResultProperty): Added. |
| (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Added. |
| (WI.AuditTestCase.prototype.get id): Deleted. |
| (WI.AuditTestCase.prototype.get name): Deleted. |
| (WI.AuditTestCase.prototype.get suite): Deleted. |
| (WI.AuditTestCase.prototype.get setup): Deleted. |
| (WI.AuditTestCase.prototype.get tearDown): Deleted. |
| (WI.AuditTestCase.prototype.get errorDetails): Deleted. |
| |
| * UserInterface/Models/AuditTestGroup.js: Added. |
| (WI.AuditTestGroup): |
| (WI.AuditTestGroup.fromPayload): |
| (WI.AuditTestGroup.prototype.get tests): |
| (WI.AuditTestGroup.prototype.stop): |
| (WI.AuditTestGroup.prototype.clearResult): |
| (WI.AuditTestGroup.prototype.async run): |
| (WI.AuditTestGroup.prototype.toJSON): |
| (WI.AuditTestGroup.prototype._updateResult): |
| (WI.AuditTestGroup.prototype._handleTestCompleted): |
| (WI.AuditTestGroup.prototype._handleTestProgress): |
| |
| * UserInterface/Models/AuditTestResultBase.js: Added. |
| (WI.AuditTestResultBase): |
| (WI.AuditTestResultBase.prototype.get name): |
| (WI.AuditTestResultBase.prototype.get description): |
| (WI.AuditTestResultBase.prototype.get result): |
| (WI.AuditTestResultBase.prototype.get didPass): |
| (WI.AuditTestResultBase.prototype.get didWarn): |
| (WI.AuditTestResultBase.prototype.get didFail): |
| (WI.AuditTestResultBase.prototype.get didError): |
| (WI.AuditTestResultBase.prototype.get unsupported): |
| (WI.AuditTestResultBase.prototype.saveIdentityToCookie): |
| (WI.AuditTestResultBase.prototype.toJSON): |
| |
| * UserInterface/Models/AuditTestCaseResult.js: Added. |
| (WI.AuditTestCaseResult): |
| (WI.AuditTestCaseResult.fromPayload.checkArray): |
| (WI.AuditTestCaseResult.fromPayload): |
| (WI.AuditTestCaseResult.prototype.get level): |
| (WI.AuditTestCaseResult.prototype.get data): |
| (WI.AuditTestCaseResult.prototype.get didPass): |
| (WI.AuditTestCaseResult.prototype.get didWarn): |
| (WI.AuditTestCaseResult.prototype.get didFail): |
| (WI.AuditTestCaseResult.prototype.get didError): |
| (WI.AuditTestCaseResult.prototype.get unsupported): |
| (WI.AuditTestCaseResult.prototype.toJSON): |
| |
| * UserInterface/Models/AuditTestGroupResult.js: Added. |
| (WI.AuditTestGroupResult): |
| (WI.AuditTestGroupResult.fromPayload): |
| (WI.AuditTestGroupResult.prototype.get results): |
| (WI.AuditTestGroupResult.prototype.get levelCounts): |
| (WI.AuditTestGroupResult.prototype.get didPass): |
| (WI.AuditTestGroupResult.prototype.get didWarn): |
| (WI.AuditTestGroupResult.prototype.get didFail): |
| (WI.AuditTestGroupResult.prototype.get didError): |
| (WI.AuditTestGroupResult.prototype.get unsupported): |
| (WI.AuditTestGroupResult.prototype.toJSON): |
| |
| * UserInterface/Views/AuditTabContentView.js: Added. |
| (WI.AuditTabContentView): |
| (WI.AuditTabContentView.tabInfo): |
| (WI.AuditTabContentView.isTabAllowed): |
| (WI.AuditTabContentView.prototype.get type): |
| (WI.AuditTabContentView.prototype.get supportsSplitContentBrowser): |
| (WI.AuditTabContentView.prototype.canShowRepresentedObject): |
| (WI.AuditTabContentView.prototype.shown): |
| (WI.AuditTabContentView.prototype.hidden): |
| (WI.AuditTabContentView.prototype._handleSpace): |
| |
| * UserInterface/Views/AuditNavigationSidebarPanel.js: Added. |
| (WI.AuditNavigationSidebarPanel): |
| (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView): |
| (WI.AuditNavigationSidebarPanel.prototype.initialLayout): |
| (WI.AuditNavigationSidebarPanel.prototype.closed): |
| (WI.AuditNavigationSidebarPanel.prototype._addTest): |
| (WI.AuditNavigationSidebarPanel.prototype._addResult): |
| (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestAdded): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestCompleted): |
| (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled): |
| (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.AuditNavigationSidebarPanel.prototype._handleStartStopButtonNavigationItemClicked): |
| (WI.AuditNavigationSidebarPanel.prototype._handleImportButtonNavigationItemClicked): |
| * UserInterface/Views/AuditNavigationSidebarPanel.css: Added. |
| (.sidebar > .panel.navigation.audit > .content): |
| |
| * UserInterface/Views/AuditTreeElement.js: Added. |
| (WI.AuditTreeElement): |
| (WI.AuditTreeElement.prototype.get result): |
| (WI.AuditTreeElement.prototype.onattach): |
| (WI.AuditTreeElement.prototype.ondetach): |
| (WI.AuditTreeElement.prototype.onpopulate): |
| (WI.AuditTreeElement.prototype.populateContextMenu): |
| (WI.AuditTreeElement.prototype._start): |
| (WI.AuditTreeElement.prototype._updateLevel): |
| (WI.AuditTreeElement.prototype._showRunningSpinner): |
| (WI.AuditTreeElement.prototype._showRunningProgress): |
| (WI.AuditTreeElement.prototype._handleTestCaseCompleted): |
| (WI.AuditTreeElement.prototype._handleTestResultCleared): |
| (WI.AuditTreeElement.prototype._handleTestCaseScheduled): |
| (WI.AuditTreeElement.prototype._handleTestGroupCompleted): |
| (WI.AuditTreeElement.prototype._handleTestGroupProgress): |
| (WI.AuditTreeElement.prototype._handleTestGroupScheduled): |
| (WI.AuditTreeElement.prototype._handleStatusClick): |
| * UserInterface/Views/AuditTreeElement.css: Added. |
| (.tree-outline .item.audit > .status): |
| (.tree-outline .item.audit > .status > img): |
| (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img): |
| (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)): |
| (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): |
| (.tree-outline .item.audit > .status > img.pass): |
| (.tree-outline .item.audit > .status > img.warn): |
| (.tree-outline .item.audit > .status > img.fail): |
| (.tree-outline .item.audit > .status > img.error): |
| (.tree-outline .item.audit > .status > img.unsupported): |
| (.audit.test-case .icon): |
| (.audit.test-group .icon): |
| (.audit.test-case-result .icon): |
| (.audit.test-group-result .icon): |
| |
| * UserInterface/Views/AuditTestContentView.js: Added. |
| (WI.AuditTestContentView): |
| (WI.AuditTestContentView.prototype.get navigationItems): |
| (WI.AuditTestContentView.prototype.get headerView): |
| (WI.AuditTestContentView.prototype.get contentView): |
| (WI.AuditTestContentView.prototype.get supportsSave): |
| (WI.AuditTestContentView.prototype.get saveData): |
| (WI.AuditTestContentView.prototype.initialLayout): |
| (WI.AuditTestContentView.prototype.layout): |
| (WI.AuditTestContentView.prototype.shown): |
| (WI.AuditTestContentView.prototype.hidden): |
| (WI.AuditTestContentView.prototype.get placeholderElement): |
| (WI.AuditTestContentView.prototype.set placeholderElement): |
| (WI.AuditTestContentView.prototype.showRunningPlaceholder): |
| (WI.AuditTestContentView.prototype.showStoppingPlaceholder): |
| (WI.AuditTestContentView.prototype.showNoResultPlaceholder): |
| (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder): |
| (WI.AuditTestContentView.prototype.showFilteredPlaceholder): |
| (WI.AuditTestContentView.prototype.hidePlaceholder): |
| (WI.AuditTestContentView.prototype.applyFilter): |
| (WI.AuditTestContentView.prototype.resetFilter): |
| (WI.AuditTestContentView.prototype._exportAudit): |
| (WI.AuditTestContentView.prototype._updateExportButtonNavigationItemState): |
| (WI.AuditTestContentView.prototype._showPlaceholder): |
| (WI.AuditTestContentView.prototype._handleExportButtonNavigationItemClicked): |
| (WI.AuditTestContentView.prototype._handleTestChanged): |
| * UserInterface/Views/AuditTestContentView.css: Added. |
| (.content-view-container > .content-view.audit-test): |
| (.content-view-container > .content-view.audit-test > header): |
| (.content-view-container > .content-view.audit-test > header h1): |
| (.content-view-container > .content-view.audit-test > header p): |
| (.content-view.audit-test): |
| (.content-view.audit-test h1): |
| (.content-view.audit-test > header): |
| (.content-view.audit-test > header p): |
| (.content-view.audit-test .audit-test.filtered, .content-view.audit-test .audit-test .message-text-view): |
| (.content-view.audit-test > section): |
| (.content-view.audit-test > section > .message-text-view): |
| (.content-view.audit-test.showing-placeholder): |
| (.content-view.audit-test.showing-placeholder > section): |
| (.content-view.audit-test.showing-placeholder > section > :not(.message-text-view)): |
| (@media (prefers-dark-interface) .content-view.audit-test): |
| |
| * UserInterface/Views/AuditTestCaseContentView.js: Added. |
| (WI.AuditTestCaseContentView): |
| (WI.AuditTestCaseContentView.prototype.initialLayout): |
| (WI.AuditTestCaseContentView.prototype.layout): |
| (WI.AuditTestCaseContentView.prototype.showRunningPlaceholder): |
| * UserInterface/Views/AuditTestCaseContentView.css: Added. |
| (.content-view-container > .content-view.audit-test-case > header): |
| (.content-view-container > .content-view.audit-test-case > section > :not(.message-text-view):first-child): |
| (.content-view.audit-test-case > header > h1): |
| (.content-view.audit-test-case > header > h1 > img): |
| (.content-view.audit-test-case > section > :not(.message-text-view)): |
| (.content-view.audit-test-case > section > :not(.message-text-view):last-child): |
| (.content-view.audit-test-case > section > :not(.message-text-view) + :not(.message-text-view)): |
| (.content-view.audit-test-case > section h1): |
| (.content-view.audit-test-case > section table): |
| (.content-view.audit-test-case > section table > tr + tr > td): |
| (.content-view.audit-test-case > section table > tr > td > :not(.tree-outline)): |
| (.content-view.audit-test-case > section table > tr > td:first-child): |
| (.content-view.audit-test-case > section > .dom-nodes > table > tr > td:first-child): |
| (.content-view.audit-test-case > section code): |
| (.content-view.audit-test-case > section mark): |
| |
| * UserInterface/Views/AuditTestGroupContentView.js: Added. |
| (WI.AuditTestGroupContentView): |
| (WI.AuditTestGroupContentView.prototype.initialLayout): |
| (WI.AuditTestGroupContentView.prototype.layout): |
| (WI.AuditTestGroupContentView.prototype.shown): |
| (WI.AuditTestGroupContentView.prototype.hidden): |
| (WI.AuditTestGroupContentView.prototype.applyFilter): |
| (WI.AuditTestGroupContentView.prototype.resetFilter): |
| (WI.AuditTestGroupContentView.prototype.showRunningPlaceholder): |
| (WI.AuditTestGroupContentView.prototype._subobjects): |
| (WI.AuditTestGroupContentView.prototype._updateLevelScopeBar): |
| (WI.AuditTestGroupContentView.prototype._handleTestGroupCompleted): |
| (WI.AuditTestGroupContentView.prototype._handleTestGroupProgress): |
| (WI.AuditTestGroupContentView.prototype._handleTestGroupScheduled): |
| (WI.AuditTestGroupContentView.prototype._handleLevelScopeBarSelectionChanged): |
| * UserInterface/Views/AuditTestGroupContentView.css: Added. |
| (.content-view-container > .content-view.audit-test-group > header): |
| (.content-view.audit-test-group > header): |
| (.content-view.audit-test-group.no-matches + .audit-test-group > header): |
| (.content-view.audit-test-group > header, .content-view.audit-test-group:not(.filtered):last-child > header): |
| (.content-view.audit-test-group.contains-test-case > header): |
| (.content-view.audit-test-group.contains-test-case + .audit-test-group.contains-test-case): |
| (.content-view.audit-test-group.contains-test-case:not(.contains-test-group) > section, .content-view.audit-test-group.contains-test-case.contains-test-group > section > .audit-test-case): |
| (.content-view.audit-test-group > header > .information): |
| (.content-view.audit-test-group > header > .information > p): |
| (.content-view.audit-test-group > header > nav): |
| (.content-view.audit-test-group > header > nav:empty): |
| (.content-view.audit-test-group > header > nav:not(:empty):before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li:not(:hover, .selected)): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li:last-child): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li::before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.pass::before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.warn::before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.fail::before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.error::before): |
| (.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported::before): |
| (.content-view.audit-test-group > header > .percentage-pass): |
| (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): |
| (.content-view.audit-test-group > section > .audit-test-case:first-child, .content-view.audit-test-group > section > .audit-test-group + .audit-test-case, .content-view.audit-test-group > section > .audit-test-case + .audit-test-group): |
| (.content-view.audit-test-group > section > .audit-test-case:last-child): |
| |
| * UserInterface/Views/ScopeBarItem.js: |
| (WI.ScopeBarItem): |
| (WI.ScopeBarItem.prototype.set selected): |
| * UserInterface/Views/MultipleScopeBarItem.js: |
| (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem): |
| Add an `independent` option that prevents selection changes from deselecting other |
| `WI.ScopeBarItem`s in the same `WI.ScopeBar` (`exclusive` takes precedence). |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement): |
| (WI.DOMTreeElement.prototype.highlightAttribute): |
| (WI.DOMTreeElement.prototype._buildAttributeDOM): |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom li .highlight): |
| |
| * UserInterface/Views/ToggleButtonNavigationItem.js: |
| (WI.ToggleButtonNavigationItem.prototype.set toggled): |
| Also change the `label` if the `ButtonStyle` has text. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Views/DividerNavigationItem.css: |
| (.navigation-bar .item.divider): |
| |
| * UserInterface/Base/Utilities.js: |
| (Promise.chain): Added. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.createFromRepresentedObject): |
| (WI.ContentView.isViewable): |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| |
| * UserInterface/Test.html: |
| * UserInterface/Base/Test.js: |
| (WI.loaded): |
| |
| * UserInterface/Images/Audit.svg: Added. |
| * UserInterface/Images/AuditStart.svg: Added. |
| * UserInterface/Images/AuditStop.svg: Added. |
| * UserInterface/Images/AuditTestCase.svg: Added. |
| * UserInterface/Images/AuditTestCaseResult.svg: Added. |
| * UserInterface/Images/AuditTestError.svg: Added. |
| * UserInterface/Images/AuditTestFail.svg: Added. |
| * UserInterface/Images/AuditTestGroup.svg: Added. |
| * UserInterface/Images/AuditTestGroupResult.svg: Added. |
| * UserInterface/Images/AuditTestNoResult.svg: Added. |
| * UserInterface/Images/AuditTestPass.svg: Added. |
| * UserInterface/Images/AuditTestUnsupported.svg: Added. |
| * UserInterface/Images/AuditTestWarn.svg: Added. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-10-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide options to WI.cssPath for more verbosity |
| https://bugs.webkit.org/show_bug.cgi?id=190987 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/DOMUtilities.js: |
| (WI.cssPath): |
| (WI.cssPathComponent): |
| When the option `full` is true, print every attribute along with every node in the hierarchy |
| until the root is reached. This partially duplicates the effect of an XPath, but instead |
| uses CSS selectors, making it much more human readable and recognizable. |
| |
| 2018-10-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: change WI.ColorWheel to use conic-gradient() |
| https://bugs.webkit.org/show_bug.cgi?id=189485 |
| |
| Reviewed by Brian Burg. |
| |
| Use the ("new") HSL `WI.ColorPicker` if `conic-gradient` is supported. Otherwise, use the |
| ("old") RGB `WI.LegacyColorPicker`. |
| |
| * UserInterface/Views/ColorWheel.js: |
| (WI.ColorWheel): |
| (WI.ColorWheel.prototype.set dimension): |
| (WI.ColorWheel.prototype.set brightness): |
| (WI.ColorWheel.prototype.get tintedColor): |
| (WI.ColorWheel.prototype.set tintedColor): |
| (WI.ColorWheel.prototype.get rawColor): |
| (WI.ColorWheel.prototype.get _hue): Added. |
| (WI.ColorWheel.prototype.get _saturation): Added. |
| (WI.ColorWheel.prototype._updateColorForMouseEvent): |
| (WI.ColorWheel.prototype._setCrosshairPosition): |
| (WI.ColorWheel.prototype._updateGradient): Added. |
| (WI.ColorWheel.prototype._pointInCircleForEvent.distance): Deleted. |
| (WI.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint): Deleted. |
| (WI.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference): Deleted. |
| (WI.ColorWheel.prototype._pointInCircleForEvent): Deleted. |
| (WI.ColorWheel.prototype._tintedColorToPointAndBrightness): Deleted. |
| (WI.ColorWheel.prototype._drawRawCanvas): Deleted. |
| (WI.ColorWheel.prototype._colorAtPointWithBrightness): Deleted. |
| (WI.ColorWheel.prototype._drawTintedCanvas): Deleted. |
| (WI.ColorWheel.prototype._draw): Deleted. |
| * UserInterface/Views/ColorWheel.css: |
| (.color-wheel > .gradient): Added. |
| (.color-wheel > .crosshair): Added. |
| |
| * UserInterface/Views/LegacyColorWheel.js: Copied from Source/WebInspectorUI/UserInterface/Views/ColorWheel.js. |
| |
| * UserInterface/Views/ColorPicker.js: |
| (WI.ColorPicker): |
| (WI.ColorPicker.supportsConicGradient): Added. |
| (WI.ColorPicker.prototype._updateSliders): |
| |
| * UserInterface/Models/Geometry.js: |
| (WI.Point.prototype.distance): |
| |
| * UserInterface/Main.html: |
| |
| 2018-10-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: make the layers sidebar in the Elements tab always visible |
| https://bugs.webkit.org/show_bug.cgi?id=190158 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| * UserInterface/Views/SearchTabContentView.js: |
| (WI.SearchTabContentView): |
| |
| 2018-10-30 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: refactor WI.ScopeBarItem for better extensibility |
| https://bugs.webkit.org/show_bug.cgi?id=190986 |
| |
| Reviewed by Brian Burg. |
| |
| Renames `withModifier` to `extendSelection` for clarity of usage, and to allow the changes |
| in <https://webkit.org/b/190754> (adding an option to allow `WI.ScopeBarItem`s to be |
| selected without deselcting any other `WI.ScopeBarItem`s) to use the same variable. |
| |
| * UserInterface/Views/ScopeBarItem.js: |
| (WI.ScopeBarItem): |
| (WI.ScopeBarItem.prototype.set selected): |
| (WI.ScopeBarItem.prototype._handleMouseDown): |
| (WI.ScopeBarItem.prototype.setSelected): Deleted. |
| |
| * UserInterface/Views/ScopeBar.js: |
| (WI.ScopeBar): |
| (WI.ScopeBar.prototype._populate): |
| (WI.ScopeBar.prototype._itemSelectionDidChange): |
| |
| * UserInterface/Views/MultipleScopeBarItem.js: |
| (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel): |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WI.StorageSidebarPanel): |
| |
| 2018-10-29 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Flash views with red outline on initial layout |
| https://bugs.webkit.org/show_bug.cgi?id=191048 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/View.js: |
| (WI.View.prototype._layoutSubtree): |
| (WI.View.prototype._drawLayoutFlashingOutline): |
| |
| 2018-10-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: show warning when path moves offscreen |
| https://bugs.webkit.org/show_bug.cgi?id=191016 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction): |
| (WI.RecordingAction.deriveCurrentState): |
| (WI.RecordingAction.prototype.get isVisual): |
| (WI.RecordingAction.prototype.get warning): Added. |
| (WI.RecordingAction.prototype.process.checkInvalidCurrentAxisPoint): Added. |
| (WI.RecordingAction.prototype.process): |
| (WI.RecordingAction.prototype.get hasVisibleEffect): Deleted. |
| Replace `hasVisibleEffect` with a more general `warning` value, so that it can be used for |
| more types of warnings. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement.prototype.onattach): |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.item.action.visual.warning:not(.invalid) > .status > .warning): Added. |
| (.item.action.visual.no-visible-effect:not(.invalid) > .status > .warning): Deleted. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| 2018-10-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: refactor code for getting properties via WI.RemoteObject |
| https://bugs.webkit.org/show_bug.cgi?id=190989 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.getPropertyDescriptors): Added. |
| (WI.RemoteObject.prototype.getPropertyDescriptorsAsObject): Added. |
| (WI.RemoteObject.prototype.getOwnPropertyDescriptors): Deleted. |
| (WI.RemoteObject.prototype.getAllPropertyDescriptors): Deleted. |
| (WI.RemoteObject.prototype._getPropertyDescriptors): Deleted. |
| (WI.RemoteObject.prototype.getOwnPropertyDescriptorsAsObject): Deleted. |
| |
| * UserInterface/Views/ErrorObjectView.js: |
| (WI.ErrorObjectView.prototype.update): |
| * UserInterface/Views/ObjectTreePropertyTreeElement.js: |
| (WI.ObjectTreePropertyTreeElement.prototype._updateChildren): |
| * UserInterface/Views/ObjectTreeView.js: |
| (WI.ObjectTreeView.prototype.update): |
| |
| 2018-10-29 Tim Horton <timothy_horton@apple.com> |
| |
| Modernize WebKit nibs and lprojs for localization's sake |
| https://bugs.webkit.org/show_bug.cgi?id=190911 |
| <rdar://problem/45349466> |
| |
| Reviewed by Dan Bernstein. |
| |
| * WebInspectorUI.xcodeproj/project.pbxproj: |
| English->en |
| |
| 2018-10-29 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: prevent Canvas tab from listening for "space" when not visibile |
| https://bugs.webkit.org/show_bug.cgi?id=190988 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype.shown): |
| (WI.CanvasTabContentView.prototype.hidden): Added. |
| |
| 2018-10-27 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should support deleting rows |
| https://bugs.webkit.org/show_bug.cgi?id=189803 |
| <rdar://problem/44655709> |
| |
| Reviewed by Devin Rousso. |
| |
| Add methods for removing rows from a Table without reloading the data |
| source. This patch adds Table.prototype.removeRow for removing a single |
| row, and Table.prototype.removeSelectedRows for removing the entire selection. |
| The latter also attempts to select a new row, if possible, before removing |
| the selection. |
| |
| * UserInterface/Base/IndexSet.js: |
| (WI.IndexSet.prototype.copy): |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.get numberOfRows): |
| Cache the number of rows in the table data source. Invalidate cached |
| value whenever table data is reloaded. Removing rows immediately updates |
| cached value, without incurring a potentially expensive reload. |
| |
| (WI.Table.prototype.reloadData): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype.removeRow): |
| (WI.Table.prototype.removeSelectedRows): |
| Remove the selected rows and select a new row, if possible. |
| (WI.Table.prototype._updateVisibleRows): |
| (WI.Table.prototype._handleKeyDown): |
| (WI.Table.prototype._deselectAllAndSelect): |
| Drive-by fix: should work when `rowToSelect` isn't already selected. |
| (WI.Table.prototype._removeRows): |
| Remove rows and adjust the indexes of rows that are shifted up as a result |
| of preceding rows being removed. |
| |
| 2018-10-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: simplify some editing code checks |
| https://bugs.webkit.org/show_bug.cgi?id=190970 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Base/Main.js: |
| (WI._focusChanged): |
| |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Views/EditingSupport.js: |
| (WI.enclosingCodeMirror): Added. |
| (WI.isBeingEdited): |
| (WI.isEventTargetAnEditableField): |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole): |
| |
| 2018-10-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this._classListContainer.children') |
| https://bugs.webkit.org/show_bug.cgi?id=190966 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.layout): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._classToggleButtonClicked): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles): |
| Don't try to reload the class toggles if the we haven't `layout` yet, as the element won't |
| yet exist. |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas Recording loading goes significantly slower when "Frame" tree element is expanded |
| https://bugs.webkit.org/show_bug.cgi?id=190497 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Save the `WI.TreeElement` that are in the DOM, and compare that with any `WI.TreeElement` |
| that would be added to the DOM. If all of the following are true, don't edit the DOM: |
| - no focused `WI.TreeElement` that isn't currently visible (we would scroll otherwise) |
| - the set of previously visible `WI.TreeElement`s (e.g. not used for scroll padding) has at |
| least one of the `WI.TreeElement`s that would be added from this update |
| - this means that the user hasn't scrolled beyond the padding `WI.TreeElement` |
| - there are no `WI.TreeElement`s that would be added from this update that were NOT added |
| in a previous update |
| - this covers the case that a `WI.TreeElement` is inserted in the visible area |
| |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.registerScrollVirtualizer): |
| (WI.TreeOutline.prototype.updateVirtualizedElements.walk): |
| (WI.TreeOutline.prototype.updateVirtualizedElements): |
| |
| 2018-10-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| JSContext Inspector: Broken frontend, DOMAgent is used but does not exist |
| https://bugs.webkit.org/show_bug.cgi?id=190922 |
| <rdar://problem/45569827> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.requestDocument): |
| Feature check for agents that may not exist in a JSContext. |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add corner rounding to the network timing "blocks" |
| https://bugs.webkit.org/show_bug.cgi?id=190379 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.waterfall .block): |
| (body[dir=ltr] .waterfall .block): Added. |
| (body[dir=rtl] .waterfall .block): Added. |
| (.network-table .waterfall .block + .block): Added. |
| (.network-table .waterfall .block.filler + .block, .network-table .waterfall .block:not(.request, .response) + :matches(.request, .response)): Added. |
| (.network-table .waterfall .block:last-child): Added. |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: display fullscreen enter/exit events in Timelines and Network node waterfalls |
| https://bugs.webkit.org/show_bug.cgi?id=189874 |
| <rdar://problem/44700000> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Protocol/DOMObserver.js: |
| (WI.DOMObserver.prototype.didFireEvent): |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.didFireEvent): |
| Allow `data` to be passed to the frontend with `didFireEvent`. |
| |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode): |
| (WI.DOMNode.getFullscreenDOMEvents): Added. |
| (WI.DOMNode.prototype.didFireEvent): |
| (WI.DOMNode.prototype._handleDOMNodeDidFireEvent): Added. |
| (WI.DOMNode.prototype._addDOMEvent): |
| (WI.DOMNode.prototype._shouldListenForEventListeners): Added. |
| If an event is fired on an ancestor of this node, also record that event in this node's |
| `domEvents`, including the `originator` node. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-fullscreen): Added. |
| |
| * UserInterface/Views/DOMEventsBreakdownView.js: |
| (WI.DOMEventsBreakdownView.prototype.initialLayout): |
| (WI.DOMEventsBreakdownView.prototype._populateTable): |
| * UserInterface/Views/DOMEventsBreakdownView.css: |
| (.dom-events-breakdown .graph > .area.fullscreen): Added. |
| (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > .point): Added. |
| (.dom-events-breakdown:not(.has-inherited) .originator): Added. |
| |
| 2018-10-25 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: more aggressively snap timing blocks together |
| https://bugs.webkit.org/show_bug.cgi?id=190439 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| If the time difference between the end of the previous block and the start of this block |
| would result in less than 2px of space, extend the next block back to the previous block. |
| |
| 2018-10-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: popovers for function source code are malformed |
| https://bugs.webkit.org/show_bug.cgi?id=190859 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Previously, the `WI.Popover` would be drawn twice: once when the |
| `WI.CodeMirrorTokenTrackingController` determines that the user has hovered on a function |
| token, and once again when the source for that function is formatted (after being retrieved). |
| In the case that the formatter is able to return the prettified source within a frame (or |
| two), the `WI.Popover` is still in the middle of animating to its new size, meaning that the |
| changes made by the formatted `update` will be overridden on the next rAF (creates a flash). |
| |
| * UserInterface/Views/Popover.js: |
| (WI.Popover.prototype): |
| (WI.Popover.prototype._animateFrame.drawBackground): |
| (WI.Popover.prototype._drawBackground): |
| Add a member variable to make sure that there is only ever one rAF firing at a time. |
| Drive-by: rework the background code to only use one canvas. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails): |
| Don't show the `WI.Popover` until the formatter has finished prettifying the function's |
| source code, as otherwise there is brief moment that the popover appears and is empty. |
| |
| 2018-10-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION (r237232): changing resources via up/down blurs the TreeOutline in Resources |
| https://bugs.webkit.org/show_bug.cgi?id=190862 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.set selectedTextRange): |
| Don't `focus` unless the `activeElement` is not a WebInspector element (e.g. <body>), |
| meaning that the previously focused element has been removed from the DOM and no longer |
| needs to keep the focus. |
| |
| 2018-10-24 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: CSP request payload on medium.com is unreadable, should be pretty-printed |
| https://bugs.webkit.org/show_bug.cgi?id=190354 |
| <rdar://problem/45090894> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.set string.update): |
| (WI.TextEditor.prototype._attemptToDetermineMIMEType): Added. |
| If the content doesn't already have a MIME type, attempt to determine one by trying to |
| format it as "javascript" (e.g. request JSON that is simply missing a MIME type). |
| |
| * UserInterface/Views/TextContentView.js: |
| (WI.TextContentView): |
| (WI.TextContentView.prototype._handleTextEditorMIMETypeChanged): Added. |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView): |
| (WI.TextResourceContentView.prototype._handleTextEditorMIMETypeChanged): Added. |
| * UserInterface/Views/ScriptContentView.js: |
| (WI.ScriptContentView): |
| (WI.ScriptContentView.prototype._handleTextEditorMIMETypeChanged): Added. |
| Enable the "Pretty Print" navigation button if the MIME type changes to something that is |
| able to be formatted. |
| Drive-by: reorder the creation of the "Pretty Print" button so that it exists if |
| `_attemptToDetermineMIMEType` finishes synchronously. |
| |
| 2018-10-23 Devin Rousso <drousso@apple.com> |
| |
| Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener') |
| https://bugs.webkit.org/show_bug.cgi?id=190766 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| When creating the `mouseBlock`, if the `startTimestamp` and `endTimestamp` are equal, we |
| don't create an element. If this is true for the total range of the `WI.Resouce` (meaning |
| its `startTime` and `responseEnd`), don't even try to create blocks. |
| |
| 2018-10-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: "Queued NaNms" in Network tab |
| https://bugs.webkit.org/show_bug.cgi?id=190767 |
| <rdar://problem/45420859> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/ResourceTimingData.js: |
| (WI.ResourceTimingData.prototype.get fetchStart): |
| If the `WI.ResourceTimingData` has no `fetchStart` use the associated `WI.Resource`'s |
| `requestSentTimestamp` (just like `startTime`). |
| |
| 2018-10-22 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Open Quickly dialog doesn't show named scripts that appear in the debugger sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=190649 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype.didPresentDialog): |
| (WI.OpenResourceDialog.prototype._addResourcesForTarget): |
| (WI.OpenResourceDialog.prototype._addScriptsForTarget): |
| Include non-resource named scripts from the main target in |
| the open quickly dialog. |
| |
| 2018-10-19 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unused member variable of DebuggerSidebarPanel |
| https://bugs.webkit.org/show_bug.cgi?id=190743 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| |
| 2018-10-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Quickly Open to line/column does should have caret indicating where the position is |
| https://bugs.webkit.org/show_bug.cgi?id=190643 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.set selectedTextRange): |
| (WI.TextEditor.prototype.revealPosition): |
| Ensure that CodeMirror is focused before attempting to `setSelection`. |
| Drive-by: allow selections past the "end" of the line (since there is a `\n` or `\r`). |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.dialogWasDismissedWithRepresentedObject): |
| Remove the extra `focus` call after dismissing the `WI.GoToLineDialog` since it is now |
| handled by `WI.TextEditor` via `revealPosition`. |
| |
| 2018-10-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: ⌃G to jump to line in CSS file wipes the line |
| https://bugs.webkit.org/show_bug.cgi?id=190645 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Views/Dialog.js: |
| (WI.Dialog.prototype.dismiss): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.dialogWasDismissed): Deleted. |
| Rename the handler when dismissing a dialog with a value so that |
| it is clear this is only on a successful value and not an invalid value. |
| Dialog now only calls this delegate with a valid value. This addresses |
| exceptions seen when the GoToLineDialog was dimissed via Escape and |
| an unexpected `null` value was being handled in the delegate. |
| |
| * UserInterface/Views/GoToLineDialog.js: |
| (WI.GoToLineDialog.prototype._handleKeydownEvent): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._handleKeydownEvent): |
| Prevent default on the event whenever we dismiss the dialog. |
| Without this, the key event was also being sent to the editor. |
| In this case, that meant an "Enter" key was replacing the new |
| selection in the TextEditor with a newline! |
| |
| 2018-10-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: capture previously saved states and add them to the recording payload |
| https://bugs.webkit.org/show_bug.cgi?id=190473 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Instead of sending a single object of the current state of the context, send an array of |
| objects, one for each restore point. When replaying, recreate each restore point before |
| applying the selected action(s). |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording): |
| (WI.Recording.fromPayload): |
| (WI.Recording.prototype.toJSON): |
| (WI.Recording.prototype.async._process): |
| (WI.Recording.prototype.async._swizzleState): Added. |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction): |
| (WI.RecordingAction.deriveCurrentState): Added. |
| (WI.RecordingAction.prototype.get states): Added. |
| (WI.RecordingAction.prototype.process): |
| (WI.RecordingAction.prototype.get state): Deleted. |
| Drive-by: when `process`ing, also check to see if any values in the current state changed |
| outside of those expected in `_stateModifiers` (e.g. `restore` may modify some state values). |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._generateContentCanvas2D): |
| |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: |
| (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D): |
| Default to showing the most recent (current) state. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype.initialLayout): Added. |
| (WI.CanvasTabContentView.prototype._addCanvas): |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| (WI.CanvasTabContentView.prototype._addRecording): Added. |
| (WI.CanvasTabContentView.prototype._recordingImportedOrStopped): |
| (WI.CanvasTabContentView.prototype._recordingAdded): Deleted. |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager): |
| (WI.CanvasManager.prototype.get importedRecordings): Added. |
| (WI.CanvasManager.prototype.importRecording): |
| Drive-by: store imported recordings on `WI.CanvasManager` so that if the Canvas tab is |
| closed we can still show the list of imported recordings. |
| |
| 2018-10-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas recording sidebar scroll position lost after switching tabs |
| https://bugs.webkit.org/show_bug.cgi?id=190482 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/Sidebar.js: |
| (WI.Sidebar.prototype.removeSidebarPanel): |
| (WI.Sidebar.prototype.set selectedSidebarPanel): |
| Call `hidden` before setting `selected` to `false`, as that sets `display: none;` on the |
| element, which sets the `scrollTop` to `0`. |
| |
| * UserInterface/Views/SidebarPanel.js: |
| (WI.SidebarPanel.prototype.shown): |
| (WI.SidebarPanel.prototype.hidden): |
| (WI.SidebarPanel.prototype.get scrollElement): Added. |
| Allow subclasses to specify the scrolling element for saving/restoring the scroll position. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.get scrollElement): Added. |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: |
| (WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): Added. |
| |
| 2018-10-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Should be a way to go directly from an event in the overview view to the specialized timeline for that event |
| https://bugs.webkit.org/show_bug.cgi?id=135307 |
| <rdar://problem/17273966> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| When a `WI.TimelineRecordBar` is clicked, call up the delegate chain to the overview and |
| adjust the currently selected `WI.TimelineRecordBar` among the `WI.TimelineOverviewGraph`s. |
| Similarly, selecting a `WI.DataGridNode` in any `WI.TimelineView` subclass will use the same |
| logic to select the corresponding `WI.TimelineRecordBar`. |
| |
| * UserInterface/Views/TimelineOverview.js: |
| (WI.TimelineOverview): |
| (WI.TimelineOverview.prototype.reset): |
| (WI.TimelineOverview.prototype._recordSelected): |
| |
| * UserInterface/Views/TimelineOverviewGraph.js: |
| (WI.TimelineOverviewGraph): |
| (WI.TimelineOverviewGraph.prototype.set selectedRecord): |
| (WI.TimelineOverviewGraph.prototype.get selectedRecordBar): Added. |
| (WI.TimelineOverviewGraph.prototype.set selectedRecordBar): Added. |
| (WI.TimelineOverviewGraph.prototype.timelineRecordBarClicked): Added. |
| (WI.TimelineOverviewGraph.prototype._needsSelectedRecordLayout): |
| |
| * UserInterface/Views/TimelineRecordBar.js: |
| (WI.TimelineRecordBar): |
| (WI.TimelineRecordBar.prototype.get selected): Added. |
| (WI.TimelineRecordBar.prototype.set selected): Added. |
| (WI.TimelineRecordBar.prototype._handleClick): Added. |
| * UserInterface/Views/TimelineRecordBar.css: |
| (.timeline-record-bar.selected > .segment): Added. |
| Add a `delegate` that is notified whenever the element is clicked. |
| |
| * UserInterface/Views/TimelineDataGridNode.js: |
| (WI.TimelineDataGridNode.prototype.refreshGraph.createBar): |
| * UserInterface/Views/LayoutTimelineOverviewGraph.js: |
| (WI.LayoutTimelineOverviewGraph.prototype.updateSelectedRecord): |
| (WI.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar): |
| * UserInterface/Views/NetworkTimelineOverviewGraph.js: |
| (WI.NetworkTimelineOverviewGraph.prototype.layout.createBar): |
| * UserInterface/Views/ScriptTimelineOverviewGraph.js: |
| (WI.ScriptTimelineOverviewGraph.prototype.layout.createBar): |
| (WI.ScriptTimelineOverviewGraph.prototype.updateSelectedRecord): |
| |
| * UserInterface/Views/TimelineRecordingContentView.js: |
| (WI.TimelineRecordingContentView.prototype.showTimelineViewForTimeline): |
| |
| 2018-10-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: sequences of spaces longer than 16 don't show a dot |
| https://bugs.webkit.org/show_bug.cgi?id=190528 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| Create a new CSS rule and add it to a unique <style> whenever a whitespace sequence with |
| a length is seen for the first time. |
| |
| * UserInterface/Views/CodeMirrorOverrides.css: |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-1::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-2::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-3::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-4::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-5::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-6::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-7::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-8::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-9::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-10::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-11::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-12::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-13::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-14::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-15::before): Deleted. |
| (.show-whitespace-characters .CodeMirror .cm-whitespace-16::before): Deleted. |
| |
| 2018-10-15 Charles Vazac <cvazac@gmail.com> |
| |
| Web Inspector: Expose Server Timing Response Headers in Network Tab |
| https://bugs.webkit.org/show_bug.cgi?id=190440 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: new key "Server Timing:" |
| * UserInterface/Main.html: add reference to Models/ServerTimingEntry.js |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.prototype.get serverTiming): |
| (WI.Resource.prototype.updateForResponse): |
| * UserInterface/Models/ServerTimingEntry.js: Added. |
| (WI.ServerTimingEntry): |
| (WI.ServerTimingEntry.parseHeaders): parse raw response headers into an array of ServerTimingEntry objects |
| (WI.ServerTimingEntry.parseHeaders.consumeDelimiter): |
| (WI.ServerTimingEntry.parseHeaders.consumeToken): |
| (WI.ServerTimingEntry.): |
| * UserInterface/Test.html: add reference to Models/ServerTimingEntry.js |
| * UserInterface/Views/ResourceTimingBreakdownView.js: |
| (WI.ResourceTimingBreakdownView.prototype._appendServerTimingRow): render a table row per ServerTimingEntry object |
| (WI.ResourceTimingBreakdownView.prototype.initialLayout): |
| (WI.ResourceTimingBreakdownView): |
| |
| 2018-10-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: pseudo elements in DOM tree are too dark |
| https://bugs.webkit.org/show_bug.cgi?id=190541 |
| <rdar://problem/45238443> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DOMTreeOutline.css: |
| (@media (prefers-dark-interface)): |
| (.tree-outline.dom .html-pseudo-element): |
| |
| 2018-10-15 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r233824): execution highlight range missing/incorrect in pretty printed code |
| https://bugs.webkit.org/show_bug.cgi?id=188082 |
| <rdar://problem/42640580> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange): |
| TextEditor expects positions returned by the delegate to be relative to |
| the editor's text content, not the original source code content. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype._updateExecutionRangeHighlight): |
| Convert positions to CodeMirror format here rather than in the delegate |
| method, which is a layer removed from CodeMirror. |
| |
| 2018-10-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: unreadable text when hovering CSS properties while holding Command |
| https://bugs.webkit.org/show_bug.cgi?id=190548 |
| <rdar://problem/45242098> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.meta-key-pressed .spreadsheet-css-declaration:not(.locked) :matches(.name, .value):not(.editing):hover): |
| In the light mode the color remained the same. |
| |
| 2018-10-15 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: style editor warnings should not look like errors |
| https://bugs.webkit.org/show_bug.cgi?id=190569 |
| <rdar://problem/45261689> |
| |
| Reviewed by Matt Baker. |
| |
| Make warnings in the style editor look the same as warnings in the content views. |
| Unify warning and error background color variables. |
| |
| * UserInterface/Views/LogContentView.css: |
| (@media (prefers-dark-interface)): |
| (.console-error-level): |
| (.console-warning-level): |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (.source-code.text-editor > .CodeMirror .warning): |
| (.source-code.text-editor > .CodeMirror .error): |
| (.source-code.text-editor > .CodeMirror .issue-widget.warning): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning): |
| (.source-code.text-editor > .CodeMirror .issue-widget.error): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.error): |
| (@media (prefers-dark-interface)): |
| (.source-code.text-editor > .CodeMirror .issue-widget): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property.has-warning): |
| (.spreadsheet-style-declaration-editor .property.has-warning .warning): |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-style-declaration-editor :matches(.name, .value).editing): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-dark-interface)): |
| |
| 2018-10-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: previews aren't removed when the parent view is hidden |
| https://bugs.webkit.org/show_bug.cgi?id=190525 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype.attached): |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.get canvases): |
| (WI.CanvasManager.prototype.get shaderPrograms): |
| Drive-by: simplify these getters. |
| |
| 2018-10-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Dark Mode: Highlight text in Network Headers search is too dark |
| https://bugs.webkit.org/show_bug.cgi?id=190510 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (.resource-headers.showing-find-banner .search-highlight): |
| Use adaptive text-color. |
| |
| 2018-10-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: wrong color used for "goto arrow" for selected DOM breakpoint tree element |
| https://bugs.webkit.org/show_bug.cgi?id=190180 |
| <rdar://problem/44927654> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Main.css: |
| (@media (prefers-dark-interface)): |
| (:focus .selected .go-to-arrow): |
| |
| 2018-10-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Network: detail view reverts to "Response" when new requests are added |
| https://bugs.webkit.org/show_bug.cgi?id=190443 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._showDetailView): |
| Return early if we are already showing a detail view for the selected object. |
| |
| 2018-10-11 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: remove unused TreeOutline style .force-focus |
| https://bugs.webkit.org/show_bug.cgi?id=190480 |
| <rdar://problem/45203484> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CallFrameTreeElement.css: |
| (.tree-outline:focus .item.call-frame.selected .status > .status-image): |
| (.tree-outline:matches(:focus, .force-focus) .item.call-frame.selected .status > .status-image): Deleted. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:focus .item.processing.selected .subtitle > progress): |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Deleted. |
| |
| * UserInterface/Views/DataGrid.css: |
| (body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)): |
| (body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)): |
| (.data-grid:focus tr.parent.selected td.disclosure::before): |
| (.data-grid:focus tr.parent.expanded.selected td.disclosure::before): |
| (.data-grid:focus tr.selected): |
| (.data-grid:focus tr.selected td .subtitle): |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input): |
| (@media (prefers-dark-interface)): |
| (body[dir=ltr] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted. |
| (body[dir=rtl] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted. |
| (.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before): Deleted. |
| (.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before): Deleted. |
| (.data-grid:matches(:focus, .force-focus) tr.selected): Deleted. |
| (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): Deleted. |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): Deleted. |
| |
| * UserInterface/Views/Main.css: |
| (:focus .selected .go-to-arrow): |
| (:focus .selected .go-to-arrow:active): |
| (:matches(:focus, .force-focus) .selected .go-to-arrow): Deleted. |
| (:matches(:focus, .force-focus) .selected .go-to-arrow:active): Deleted. |
| |
| * UserInterface/Views/ProfileView.css: |
| (.profile > .data-grid:focus tr.selected td .location): |
| (.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted. |
| |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon): |
| (body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus .item.action.selected > .titles .parameter.swizzled,): |
| (.tree-outline:matches(:focus, .force-focus) .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted. |
| (body:not(.window-inactive, .window-docked-inactive) .tree-outline:matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,): Deleted. |
| |
| * UserInterface/Views/ScriptDetailsTimelineView.css: |
| (.tree-outline:focus .item.selected .alternate-subtitle): |
| (.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted. |
| |
| * UserInterface/Views/ShaderProgramTreeElement.css: |
| (.tree-outline:focus .item.shader-program.selected .status > img): |
| (.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img): Deleted. |
| |
| * UserInterface/Views/ThreadTreeElement.css: |
| (.tree-outline:focus > .item.thread.selected .status-button.resume): |
| (.tree-outline:matches(:focus, .force-focus) > .item.thread.selected .status-button.resume): Deleted. |
| |
| * UserInterface/Views/TimelineRecordBar.css: |
| (:focus .selected .timeline-record-bar > .segment): |
| (:focus .selected .timeline-record-bar > .segment.inactive): |
| (body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): |
| (body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): |
| (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment): Deleted. |
| (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive): Deleted. |
| (body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted. |
| (body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted. |
| |
| * UserInterface/Views/TreeElementStatusButton.css: |
| (:focus .item.selected > .status > .status-button): |
| (:matches(:focus, .force-focus) .item.selected > .status > .status-button): Deleted. |
| |
| * UserInterface/Views/TreeOutline.css: |
| (.tree-outline:focus .item.selected .disclosure-button): |
| (.tree-outline:focus .item.selected.expanded .disclosure-button): |
| (.tree-outline:focus .item.selected): |
| (.tree-outline:focus .item.selected .subtitle): |
| (.tree-outline:not(.large):focus .item.selected .status .indeterminate-progress-spinner): |
| (.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted. |
| (.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted. |
| (.tree-outline:matches(:focus, .force-focus) .item.selected): Deleted. |
| (.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted. |
| (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner): Deleted. |
| |
| 2018-10-11 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: detail view is not re-shown after sorting the Network table |
| https://bugs.webkit.org/show_bug.cgi?id=190330 |
| <rdar://problem/45089607> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._restoreSelectedRow): |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: create special Network waterfall for media events |
| https://bugs.webkit.org/show_bug.cgi?id=189773 |
| <rdar://problem/44626605> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Protocol/DOMObserver.js: |
| (WI.DOMObserver.prototype.didFireEvent): Added. |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager.prototype.didFireEvent): Added. |
| * UserInterface/Models/DOMNode.js: |
| (WI.DOMNode): |
| (WI.DOMNode.prototype.get domEvents): Added. |
| (WI.DOMNode.prototype.didFireEvent): Added. |
| (WI.DOMNode.prototype._addDOMEvent): Added. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.shown): |
| (WI.NetworkTableContentView.prototype.hidden): |
| (WI.NetworkTableContentView.prototype.closed): |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype.showRepresentedObject): |
| (WI.NetworkTableContentView.prototype.networkDetailViewClose): Added. |
| (WI.NetworkTableContentView.prototype.tableSortChanged): |
| (WI.NetworkTableContentView.prototype.tableSelectionDidChange): |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.positionByStartOffset): Added. |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.setWidthForDuration): Added. |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): Added. |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| (WI.NetworkTableContentView.prototype._processPendingEntries): |
| (WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject): Added. |
| (WI.NetworkTableContentView.prototype._updateEntryForResource): |
| (WI.NetworkTableContentView.prototype._hideDetailView): Added. |
| (WI.NetworkTableContentView.prototype._showDetailView): Added. |
| (WI.NetworkTableContentView.prototype._positionDetailView): Added. |
| (WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange): |
| (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): |
| (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): Added. |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged): |
| (WI.NetworkTableContentView.prototype._urlFilterDidChange): |
| (WI.NetworkTableContentView.prototype._restoreSelectedRow): |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContent): Added. |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResourceEntry): Added. |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry): Added. |
| (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): Added. |
| (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): Added. |
| (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): Added. |
| (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose): Deleted. |
| (WI.NetworkTableContentView.prototype._rowIndexForResource): Deleted. |
| (WI.NetworkTableContentView.prototype._hideResourceDetailView): Deleted. |
| (WI.NetworkTableContentView.prototype._showResourceDetailView): Deleted. |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): Deleted. |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.content-view.network .network-table): Added. |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-event): Added. |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity): Added. |
| (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity.playing): Added. |
| |
| * UserInterface/Views/NetworkDOMNodeDetailView.js: Added. |
| (WI.NetworkDOMNodeDetailView): |
| (WI.NetworkDOMNodeDetailView.prototype.initialLayout): |
| (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier): |
| |
| * UserInterface/Views/NetworkResourceDetailView.css: |
| (.content-view.resource-details): |
| (.network-resource-detail): Deleted. |
| (.network-resource-detail .navigation-bar): Deleted. |
| (.network-resource-detail .item.close > .glyph): Deleted. |
| (.network-resource-detail .item.close > .glyph:hover): Deleted. |
| (.network-resource-detail .item.close > .glyph:active): Deleted. |
| (.network .network-resource-detail .navigation-bar .item.radio.button.text-only): Deleted. |
| (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): Deleted. |
| (.network-resource-detail > .content-browser): Deleted. |
| (@media (prefers-dark-interface)): Deleted. |
| * UserInterface/Views/NetworkResourceDetailView.js: |
| (WI.NetworkResourceDetailView): |
| (WI.NetworkResourceDetailView.prototype.shown): |
| (WI.NetworkResourceDetailView.prototype.headersContentViewGoToRequestData): |
| (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders): |
| (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody): |
| (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody): |
| (WI.NetworkResourceDetailView.prototype.initialLayout): |
| (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier): |
| (WI.NetworkResourceDetailView.prototype.get resource): Deleted. |
| (WI.NetworkResourceDetailView.prototype.hidden): Deleted. |
| (WI.NetworkResourceDetailView.prototype.dispose): Deleted. |
| (WI.NetworkResourceDetailView.prototype.willShowWithCookie): Deleted. |
| (WI.NetworkResourceDetailView.prototype.initialLayout): Deleted. |
| (WI.NetworkResourceDetailView.prototype._showPreferredContentView): Deleted. |
| (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): Deleted. |
| (WI.NetworkResourceDetailView.prototype._navigationItemSelected): Deleted. |
| (WI.NetworkResourceDetailView.prototype._handleCloseButton): Deleted. |
| |
| * UserInterface/Views/NetworkDetailView.js: Added. |
| (WI.NetworkDetailView): |
| (WI.NetworkDetailView.prototype.get representedObject): |
| (WI.NetworkDetailView.prototype.shown): |
| (WI.NetworkDetailView.prototype.hidden): |
| (WI.NetworkDetailView.prototype.dispose): |
| (WI.NetworkDetailView.prototype.willShowWithCookie): |
| (WI.NetworkDetailView.prototype.initialLayout): |
| (WI.NetworkDetailView.prototype.createDetailNavigationItem): |
| (WI.NetworkDetailView.prototype.detailNavigationItemForIdentifier): |
| (WI.NetworkDetailView.prototype.showContentViewForIdentifier): |
| (WI.NetworkDetailView.prototype._showPreferredContentView): |
| (WI.NetworkDetailView.prototype._navigationItemSelected): |
| (WI.NetworkDetailView.prototype._handleCloseButton): |
| * UserInterface/Views/NetworkDetailView.css: Added. |
| (.network-detail): |
| (.network-detail .navigation-bar): |
| (.network-detail .item.close > .glyph): |
| (.network-detail .item.close > .glyph:hover): |
| (.network-detail .item.close > .glyph:active): |
| (.network .network-detail .navigation-bar .item.radio.button.text-only): |
| (.network .network-detail .navigation-bar .item.radio.button.text-only.selected): |
| (.network-detail > .content-browser): |
| (@media (prefers-dark-interface)): |
| Create base class for detail views shown in the Network tab. |
| |
| * UserInterface/Views/DOMNodeEventsContentView.js: Added. |
| (WI.DOMNodeEventsContentView): |
| (WI.DOMNodeEventsContentView.prototype.initialLayout): |
| (WI.DOMNodeEventsContentView.prototype.closed): |
| (WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent): |
| * UserInterface/Views/DOMNodeEventsContentView.css: Added. |
| (.dom-node-details.dom-events): |
| |
| * UserInterface/Views/DOMEventsBreakdownView.js: Added. |
| (WI.DOMEventsBreakdownView): |
| (WI.DOMEventsBreakdownView.prototype.addEvent): |
| (WI.DOMEventsBreakdownView.prototype.initialLayout): |
| (WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime): |
| (WI.DOMEventsBreakdownView.prototype._populateTable): |
| * UserInterface/Views/DOMEventsBreakdownView.css: Added. |
| (.waterfall-popover-content .dom-events-breakdown): |
| (.dom-events-breakdown): |
| (.dom-events-breakdown table): |
| (.dom-events-breakdown tr > :matches(th, td)): |
| (.dom-events-breakdown tbody > tr): |
| (.dom-events-breakdown .graph): |
| (.dom-events-breakdown .graph > :matches(.point, .area)): |
| (.dom-events-breakdown .graph > .point): |
| (.dom-events-breakdown .time): |
| |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): Added. |
| (.popover.waterfall-popover): Deleted. |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r236853): Uncaught Exception: undefined is not an object (evaluating 'entry.resource') |
| https://bugs.webkit.org/show_bug.cgi?id=190442 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.reset): |
| It's unnecessary to deselect rows in the `WI.Table` when we're about to remove them. |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: selection in network table is lost when new entries are added |
| https://bugs.webkit.org/show_bug.cgi?id=190362 |
| |
| Reviewed by Matt Baker. |
| |
| The `_selectedRows` list is cleared each time `reloadData` is called, meaning that |
| `WI.Table` expects its "owner" to restore the selection (since it doesn't know how). As a |
| result, `WI.NetworkTableContentView` needs to call `selectRow` _after_ `reloadData` is |
| called, not before. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.tableSortChanged): |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._processPendingEntries): |
| (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable): |
| (WI.NetworkTableContentView.prototype._updateSort): Added. |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._reloadTable): Added. |
| (WI.NetworkTableContentView.prototype._resetFilters): |
| (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged): |
| (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): |
| (WI.NetworkTableContentView.prototype._urlFilterDidChange): |
| (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.reloadData): |
| Ensure that the `_selectedRowIndex` is also reset. |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: notify the frontend when a canvas has started recording via console.record |
| https://bugs.webkit.org/show_bug.cgi?id=190306 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Protocol/CanvasObserver.js: |
| (WI.CanvasObserver.prototype.recordingStarted): Added. |
| |
| * UserInterface/Protocol/CanvasManager.js: |
| (WI.CanvasManager.prototype.recordingStarted): Added. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.startRecording): |
| (WI.Canvas.prototype.recordingStarted): Added. |
| (WI.Canvas.prototype.recordingFinished): |
| |
| 2018-10-10 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: indent all network entries when "Group by Node" is checked |
| https://bugs.webkit.org/show_bug.cgi?id=190388 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): |
| |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table.grouped .data-container .cell.name): Added. |
| (.network-table.grouped .data-container .cell:not(.parent).name): Added. |
| (.network-table.grouped .data-container .cell.child.name): Added. |
| (.network-table .cell.grouped-by-node.name): Deleted. |
| (body[dir=ltr] .network-table .cell.grouped-by-node.name): Deleted. |
| (body[dir=rtl] .network-table .cell.grouped-by-node.name): Deleted. |
| Apply a padding to all nodes when the `WI.Table` is grouped. |
| |
| 2018-10-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: show redirect requests in Network and Timelines tabs |
| https://bugs.webkit.org/show_bug.cgi?id=150005 |
| <rdar://problem/5378164> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/Variables.css: |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.resourceRequestWillBeSent): |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource): |
| (WI.Resource.prototype.get redirects): Added. |
| (WI.Resource.prototype.get lastRedirectReceivedTimestamp): |
| (WI.Resource.prototype.updateForRedirectResponse): |
| Save each redirect in an array instead of just remembering the last timestamp. |
| |
| * UserInterface/Models/ResourceTimingData.js: |
| (WI.ResourceTimingData): |
| (WI.ResourceTimingData.fromPayload.offsetToTimestamp): |
| (WI.ResourceTimingData.fromPayload): |
| (WI.ResourceTimingData.prototype.get redirectStart): Added. |
| (WI.ResourceTimingData.prototype.get redirectEnd): Added. |
| (WI.ResourceTimingData.prototype.get fetchStart): Added. |
| Add missing fields for `Network.types.ResourceTiming`. |
| |
| * UserInterface/Models/Redirect.js: Added. |
| (WI.Redirect): |
| (WI.Redirect.prototype.get url): |
| (WI.Redirect.prototype.get requestMethod): |
| (WI.Redirect.prototype.get requestHeaders): |
| (WI.Redirect.prototype.get responseStatusCode): |
| (WI.Redirect.prototype.get responseStatusText): |
| (WI.Redirect.prototype.get responseHeaders): |
| (WI.Redirect.prototype.get timestamp): |
| (WI.Redirect.prototype.get urlComponents): |
| |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView): |
| (WI.ResourceHeadersContentView.prototype.initialLayout): |
| (WI.ResourceHeadersContentView.prototype.layout): |
| (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections): Added. |
| (WI.ResourceHeadersContentView.prototype._resourceRequestHeadersDidChange): |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (body[dir] .resource-headers > section.summary > .details): Added. |
| (body[dir] .resource-headers > section:matches(.redirect, .headers) > .details): Added. |
| (.resource-headers .details .key): |
| (.resource-headers .summary .key): |
| (body[dir] .resource-headers > section > .details): Deleted. |
| (body[dir] .resource-headers > section.headers > .details): Deleted. |
| (.resource-headers .value): Deleted. |
| Add a request/response header section for each redirect. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock): |
| (WI.NetworkTableContentView.prototype._populateWaterfallGraph): |
| (WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource): |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.waterfall .block.redirect): Added. |
| (.waterfall .block.queue): |
| * UserInterface/Views/ResourceTimelineDataGridNode.js: |
| (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar): |
| * UserInterface/Views/ResourceTimingBreakdownView.js: |
| (WI.ResourceTimingBreakdownView.prototype.initialLayout): |
| Add timeline/waterfall entries for total redirect time. |
| |
| 2018-10-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas Tab: grayed out Record button in navigator is nearly invisible |
| https://bugs.webkit.org/show_bug.cgi?id=190365 |
| <rdar://problem/45097739> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (@media (prefers-dark-interface)): Added. |
| (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Added. |
| |
| 2018-10-09 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954 |
| https://bugs.webkit.org/show_bug.cgi?id=190403 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype._removeCanvas): |
| Clear the `shaderProgramCollection` when a `WI.Canvas` is removed so that a remove event is |
| fired for each `WI.ShaderProgram`. |
| |
| 2018-10-08 Justin Fan <justin_fan@apple.com> |
| |
| WebGPU: Rename old WebGPU prototype to WebMetal |
| https://bugs.webkit.org/show_bug.cgi?id=190325 |
| <rdar://problem/44990443> |
| |
| Reviewed by Dean Jackson. |
| |
| Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface. |
| For WebInspector, add WebMetal to valid enums for canvas types. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.fromPayload): |
| (WI.Canvas.displayNameForContextType): |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Dark Mode: canvas recording glyph is black on gray |
| https://bugs.webkit.org/show_bug.cgi?id=190367 |
| <rdar://problem/45099304> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas > footer .view-recording): Added. |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted. |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: allow multiple canvases to be recorded at the same time |
| https://bugs.webkit.org/show_bug.cgi?id=190305 |
| |
| Reviewed by Brian Burg. |
| |
| Moved the logic for maintaining whether a canvas is actively recording from |
| `WI.CanvasManager` to `WI.Canvas`, meaning that each canvas can now record independently of |
| every other canvas in the page. If multiple recordings are all finished simultaneously, only |
| show the first one to be recieved by the frontend. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager): |
| (WI.CanvasManager.prototype.recordingProgress): |
| (WI.CanvasManager.prototype.recordingFinished): |
| (WI.CanvasManager.prototype.programCreated): |
| (WI.CanvasManager.prototype.programDeleted): |
| (WI.CanvasManager.prototype._removeCanvas): |
| (WI.CanvasManager.prototype._mainResourceDidChange): |
| (WI.CanvasManager.prototype.get recordingCanvas): Deleted. |
| (WI.CanvasManager.prototype.startRecording): Deleted. |
| (WI.CanvasManager.prototype.stopRecording): Deleted. |
| (WI.CanvasManager.prototype._dispatchShaderProgramRemoved): Deleted. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.prototype.get recordingFrameCount): Added. |
| (WI.Canvas.prototype.get recordingBufferUsed): Added. |
| (WI.Canvas.prototype.get recordingActive): Added. |
| (WI.Canvas.prototype.get isRecording): Deleted. |
| (WI.Canvas.prototype.startRecording): Added. |
| (WI.Canvas.prototype.stopRecording): Added. |
| (WI.Canvas.prototype.recordingProgress): Added. |
| (WI.Canvas.prototype.recordingFinished): Added. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype.attached): |
| (WI.CanvasTabContentView.prototype.detached): |
| (WI.CanvasTabContentView.prototype._recordingImportedOrStopped): |
| (WI.CanvasTabContentView.prototype._handleSpace): |
| (WI.CanvasTabContentView): |
| |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas.recording-active): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .title): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header > .navigation-bar > .item): Added. |
| (.content-view.canvas-overview .content-view.canvas:matches(:hover, .recording-active) > header > .navigation-bar): Added. |
| (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop.disabled): Added. |
| (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Added. |
| (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > .progress-vie): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > .preview): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added. |
| (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added. |
| (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .title): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .navigation-bar > .item): Deleted. |
| (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar): Deleted. |
| (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop.disabled): Deleted. |
| (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Deleted. |
| (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-vie): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > .preview): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.attached): |
| (WI.CanvasContentView.prototype.detached): |
| (WI.CanvasContentView.prototype._toggleRecording): |
| (WI.CanvasContentView.prototype._recordingProgress): |
| (WI.CanvasContentView.prototype._recordingStopped): |
| (WI.CanvasContentView.prototype._shaderProgramAdded): |
| (WI.CanvasContentView.prototype._shaderProgramRemoved): |
| (WI.CanvasContentView.prototype._updateRecordNavigationItem): |
| (WI.CanvasContentView.prototype._updateProgressView): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype.set canvas): |
| (WI.CanvasSidebarPanel.prototype._toggleRecording): |
| (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem): |
| |
| * UserInterface/Views/CanvasTreeElement.js: |
| (WI.CanvasTreeElement): |
| (WI.CanvasTreeElement.prototype._updateStatus): |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: replace Range.svg icon |
| https://bugs.webkit.org/show_bug.cgi?id=190372 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Images/Range.svg: |
| * UserInterface/Images/RangeLarge.svg: Added. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource.classNameForResource): Added. |
| Create a static function for specializing the `className` of `WI.Resource` objects. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| |
| * UserInterface/Views/ResourceTreeElement.js: |
| (WI.ResourceTreeElement): |
| |
| * UserInterface/Views/ResourceIcons.css: |
| (.resource-icon.resource-type-ping .icon, .resource-icon.resource-type-beacon .icon, .large .resource-icon.resource-type-ping .icon, .large .resource-icon.resource-type-beacon .icon): |
| (.resource-icon.resource-type-range .icon): |
| (.large .resource-icon.resource-type-range .icon): Added. |
| Drive-by: added `.large` versions of `ping` and `beacon` icons for the |
| `WI.OpenResourceDialog` elements. |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: group media network entries by the node that triggered the request |
| https://bugs.webkit.org/show_bug.cgi?id=189606 |
| <rdar://problem/44438527> |
| |
| Reviewed by Brian Burg. |
| |
| Introduces a `WI.NavigationItem` for changing whether network entries are grouped by the |
| node that initiated the load (if applicable). When grouped by node, a tree-like layout of |
| the table cells (including expand/collapse) is used for resources that share the same |
| initiator node. The values for the node's cell are based on it's initated resources. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| |
| * UserInterface/Controllers/DOMManager.js: |
| (WI.DOMManager): |
| (WI.DOMManager.prototype._mainResourceDidChange): Added. |
| Whenever the frame navigates, re-request the document so that `NetworkAgent` is able to send |
| valid `nodeId` for each request's `initiatorNode`. This means that the document should |
| always be available. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype.get filterNavigationItems): |
| (WI.NetworkTableContentView.prototype.closed): |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype.tableSortChanged): |
| (WI.NetworkTableContentView.prototype.tableSelectedRowChanged): |
| (WI.NetworkTableContentView.prototype.tablePopulateCell): |
| (WI.NetworkTableContentView.prototype._populateNameCell.createIconElement): Added. |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| (WI.NetworkTableContentView.prototype._populateDomainCell.createIconAndText): Added. |
| (WI.NetworkTableContentView.prototype._populateDomainCell): |
| (WI.NetworkTableContentView.prototype._populateInitiatorCell): |
| (WI.NetworkTableContentView.prototype._populateTransferSizeCell): |
| (WI.NetworkTableContentView.prototype._generateSortComparator): |
| (WI.NetworkTableContentView.prototype._processPendingEntries): |
| (WI.NetworkTableContentView.prototype._updateEntryForResource.updateExistingEntry): Added. |
| (WI.NetworkTableContentView.prototype._updateEntryForResource): |
| (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable): |
| (WI.NetworkTableContentView.prototype._entryForDOMNode): Added. |
| (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): Added. |
| (WI.NetworkTableContentView.prototype._uniqueValuesForDOMNodeEntry): Added. |
| (WI.NetworkTableContentView.prototype._updateFilteredEntries): |
| (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Added. |
| * UserInterface/Views/NetworkTableContentView.css: |
| (.network-table .cell.dom-node.name .icon): Added. |
| (.network-table .cell.dom-node.name .disclosure): Added. |
| (body[dir=rtl] .network-table .cell.dom-node.name .disclosure): Added. |
| (.network-table:focus li.selected .cell.dom-node.name .disclosure): Added. |
| (.network-table .cell.dom-node.name .disclosure.expanded): Added. |
| (.network-table:focus li.selected .cell.node.name .disclosure.expanded): Added. |
| (.network-table .cell.grouped-by-node.name): Added. |
| (body[dir=ltr] .network-table .cell.grouped-by-node.name): Added. |
| (body[dir=rtl] .network-table .cell.grouped-by-node.name): Added. |
| (.network-table li:not(.selected) .cell:matches(.cache-type, .multiple)): Added. |
| (.network-table li.selected .cell.domain > .lock): Added. |
| (.network-table .cache-type): Deleted. |
| When two resources are added that share the same `initiatorNode`, insert a node entry into |
| the `WI.Table` before the first resource entry for that node (based on the current sort). |
| This node entry is added after the resource entries are filtered, so they won't appear in |
| the default entries list. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource): |
| (WI.Resource.prototype.initiatorNode): Added. |
| (WI.Resource.prototype.requestedByteRange): Added. |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.resourceRequestWillBeSent): |
| (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache): |
| (WI.NetworkManager.prototype._initiatorNodeFromPayload): Added. |
| |
| * UserInterface/Images/Range.svg: Added. |
| * UserInterface/Views/ResourceIcons.css: |
| (.resource-icon.resource-type-range .icon): Added. |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: clicking initiator link in Network Tab table doesn't automatically switch to Preview section |
| https://bugs.webkit.org/show_bug.cgi?id=190286 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/NetworkResourceDetailView.js: |
| (WI.NetworkResourceDetailView.prototype.shown): |
| (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: be more specific as to what types of WI.Collection are allowed for the Resources tab |
| https://bugs.webkit.org/show_bug.cgi?id=190304 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| (WI.tabContentViewClassForRepresentedObject): |
| * UserInterface/Views/ResourcesTabContentView.js: |
| (WI.ResourcesTabContentView.prototype.canShowRepresentedObject): |
| |
| 2018-10-08 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Open Resource Dialog should show path to resource (to disambiguate resources with same name) |
| https://bugs.webkit.org/show_bug.cgi?id=178153 |
| <rdar://problem/34925686> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._populateResourceTreeOutline): |
| * UserInterface/Views/OpenResourceDialog.css: |
| (.open-resource-dialog .tree-outline.large .item .titles[data-path]): Added. |
| (.open-resource-dialog .tree-outline.large .item .titles[data-path]::after): Added. |
| (.open-resource-dialog .tree-outline.large .item .titles .title): Added. |
| (.open-resource-dialog .tree-outline.large .item .titles .subtitle): Added. |
| (.open-resource-dialog .tree-outline.large .item .titles): Deleted. |
| |
| 2018-10-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: add WebVTT MIME/file type mappings to the frontend |
| https://bugs.webkit.org/show_bug.cgi?id=190288 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.mimeTypeForFileExtension): |
| (WI.fileExtensionForMIMEType): |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.displayNameForResource): |
| Also attempt to use the mime-type-to-extension when the `WI.Resource` is of type `Other`. |
| |
| 2018-10-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: refactor constructor of WI.Resource |
| https://bugs.webkit.org/show_bug.cgi?id=190318 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Reworked constructor of `WI.Resource` to use an optional object for any non-essential arguments. |
| |
| Drive-by: moved some simple getters to the top of the class to save space. |
| |
| * UserInterface/Models/Resource.js: |
| (WI.Resource): |
| |
| * UserInterface/Models/SourceMapResource.js: |
| (WI.SourceMapResource): |
| |
| * UserInterface/Models/WebSocketResource.js: |
| (WI.WebSocketResource): |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype.frameDidNavigate): |
| (WI.NetworkManager.prototype.resourceRequestWillBeSent): |
| (WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest): |
| (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache): |
| (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse): |
| (WI.NetworkManager.prototype._addNewResourceToFrameOrTarget): |
| (WI.NetworkManager.prototype._createFrame): |
| (WI.NetworkManager.prototype._createResource): |
| |
| 2018-10-05 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: use iframe's name attribute for FrameTreeElement |
| https://bugs.webkit.org/show_bug.cgi?id=190275 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/FrameTreeElement.js: |
| (WI.FrameTreeElement.prototype.get mainTitleText): Added. |
| |
| * UserInterface/Views/ResourceTreeElement.js: |
| (WI.ResourceTreeElement.prototype.get mainTitleText): Added. |
| (WI.ResourceTreeElement.prototype._updateTitles): |
| Provide a way for subclasses to override what is used for the `mainTitle`. |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame): |
| Update the execution context picker to match what `WI.FrameTreeElement`s show. |
| |
| 2018-10-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r236766): Storage tab no longer updates after main frame navigation |
| https://bugs.webkit.org/show_bug.cgi?id=190298 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Handle Cleared events from storage managers separately, so that successive |
| events during page load does not cause the Storage tab to destroy newly |
| created tree elements. |
| |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WI.StorageSidebarPanel): |
| (WI.StorageSidebarPanel.prototype._closeContentViewForTreeElement): |
| (WI.StorageSidebarPanel.prototype._domStorageCleared): |
| (WI.StorageSidebarPanel.prototype._applicationCacheCleared): |
| (WI.StorageSidebarPanel.prototype._indexedDatabaseCleared): |
| (WI.StorageSidebarPanel.prototype._databaseCleared): |
| (WI.StorageSidebarPanel.prototype._storageCleared): Deleted. |
| |
| 2018-10-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should support multiple selection and Cmd-click behavior |
| https://bugs.webkit.org/show_bug.cgi?id=189705 |
| <rdar://problem/44571170> |
| |
| Reviewed by Devin Rousso. |
| |
| Add multiple row selection to Table, with new methods for programmatic |
| selection (deselectRow, deselectAll), and Command-click support for |
| selecting/deselecting Table rows. |
| |
| * UserInterface/Base/IndexSet.js: Added. |
| (WI.IndexSet): |
| (WI.IndexSet.prototype.get size): |
| (WI.IndexSet.prototype.get firstIndex): |
| (WI.IndexSet.prototype.get lastIndex): |
| (WI.IndexSet.prototype.add): |
| (WI.IndexSet.prototype.delete): |
| (WI.IndexSet.prototype.has): |
| (WI.IndexSet.prototype.clear): |
| (WI.IndexSet.prototype.indexGreaterThan): |
| (WI.IndexSet.prototype.indexLessThan): |
| (WI.IndexSet.prototype.Symbol.iterator): |
| (WI.IndexSet.prototype._indexClosestTo): |
| (WI.IndexSet.prototype._validateIndex): |
| Helper container for managing an ordered sequence of unique positive |
| integers, with set semantics, backed by a sorted array. Used by Table, |
| and eventually by TreeOutline. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| New files and stubs to make Table layout tests possible. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.reset): |
| (WI.NetworkTableContentView.prototype.showRepresentedObject): |
| (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose): |
| (WI.NetworkTableContentView.prototype.tableSelectionDidChange): |
| (WI.NetworkTableContentView.prototype._restoreSelectedRow): |
| (WI.NetworkTableContentView.prototype.tableSelectedRowChanged): Deleted. |
| Replace uses of `clearSelectedRow` with `deselectAll`, and updated |
| selection changed delegate. |
| |
| * UserInterface/Views/Table.css: |
| (.table > .data-container > .data-list > li): |
| (.table > .data-container > .data-list > li.selected): |
| (@media (prefers-dark-interface)): |
| (.table,): Deleted. |
| Removed styles that are no longer needed after https://webkit.org/b/189766, |
| and provide a visual separation between adjacent selected rows. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype.get selectedRows): |
| (WI.Table.prototype.get allowsMultipleSelection): |
| (WI.Table.prototype.set allowsMultipleSelection): |
| (WI.Table.prototype.reloadData): |
| (WI.Table.prototype.selectRow): |
| (WI.Table.prototype.deselectRow): |
| (WI.Table.prototype.deselectAll): |
| (WI.Table.prototype._getOrCreateRow): |
| (WI.Table.prototype._handleMouseDown): |
| (WI.Table.prototype._deselectAllAndSelect): |
| (WI.Table.prototype._isRowSelected): |
| (WI.Table.prototype._notifySelectionDidChange): |
| (WI.Table.prototype.clearSelectedRow): Deleted. |
| Table now tracks selected rows using an IndexSet. selectRow accepts an |
| optional parameter, `extendSelection`, for adding rows to the selection. |
| _selectedRowIndex is now used to track the most recently selected row. |
| This will be the only selected row unless multiple selection is enabled, |
| in which case it is the row that has the "focus", for purposes of selecting |
| a new row using the up or down arrow keys. |
| |
| 2018-10-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r236540): Uncaught Exception: TypeError: pauseReasonBreakpointTreeElement.removeStatusImage is not a function. |
| https://bugs.webkit.org/show_bug.cgi?id=190230 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel._removeBreakpoint): |
| Leverage existing `status` getter/setter for creating/removing the breakpoint icon element. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement): |
| (WI.BreakpointTreeElement.prototype.populateContextMenu): |
| (WI.BreakpointTreeElement.prototype._updateStatus): |
| (WI.BreakpointTreeElement.prototype.removeStatusImage): Deleted. |
| |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement): |
| (WI.DOMBreakpointTreeElement.prototype.onattach): |
| (WI.DOMBreakpointTreeElement.prototype.ondetach): |
| (WI.DOMBreakpointTreeElement.prototype._updateStatus): |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| (WI.EventBreakpointTreeElement.prototype.onattach): |
| (WI.EventBreakpointTreeElement.prototype.ondetach): |
| (WI.EventBreakpointTreeElement.prototype._updateStatus): |
| |
| * UserInterface/Views/XHRBreakpointTreeElement.js: |
| (WI.XHRBreakpointTreeElement): |
| (WI.XHRBreakpointTreeElement.prototype.onattach): |
| (WI.XHRBreakpointTreeElement.prototype.ondetach): |
| (WI.XHRBreakpointTreeElement.prototype._updateStatus): |
| |
| 2018-10-04 Dan Bernstein <mitz@apple.com> |
| |
| WebInspectorUI part of [Xcode] Update some build settings as recommended by Xcode 10 |
| https://bugs.webkit.org/show_bug.cgi?id=190250 |
| |
| Reviewed by Andy Estes. |
| |
| * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION, |
| CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and |
| CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF. |
| |
| * WebInspectorUI.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck. |
| |
| 2018-10-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: merge ProbeManager into DebuggerManager |
| https://bugs.webkit.org/show_bug.cgi?id=190225 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.get probeSets): Added. |
| (WI.DebuggerManager.prototype.probeForIdentifier): Added. |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype.removeBreakpoint): |
| (WI.DebuggerManager.prototype.didSampleProbe): Added. |
| (WI.DebuggerManager.prototype._handleBreakpointActionsDidChange): Added. |
| (WI.DebuggerManager.prototype._addProbesForBreakpoint): Added. |
| (WI.DebuggerManager.prototype._removeProbesForBreakpoint): Added. |
| (WI.DebuggerManager.prototype._updateProbesForBreakpoint): Added. |
| (WI.DebuggerManager.prototype._probeSetForBreakpoint): Added. |
| * UserInterface/Controllers/ProbeManager.js: Removed. |
| |
| * UserInterface/Protocol/DebuggerObserver.js: |
| (WI.DebuggerObserver.prototype.didSampleProbe): |
| |
| * UserInterface/Controllers/TimelineManager.js: |
| (WI.TimelineManager.prototype._processRecord): |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement.prototype.onattach): |
| |
| * UserInterface/Views/ProbeDetailsSidebarPanel.js: |
| (WI.ProbeDetailsSidebarPanel.prototype.closed): |
| (WI.ProbeDetailsSidebarPanel.prototype.initialLayout): |
| |
| * UserInterface/Views/TextResourceContentView.js: |
| (WI.TextResourceContentView): |
| (WI.TextResourceContentView.prototype.get supplementalRepresentedObjects): |
| (WI.TextResourceContentView.prototype.closed): |
| |
| 2018-10-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: some files not listed in OpenResourceDialog |
| https://bugs.webkit.org/show_bug.cgi?id=190272 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/ResourceQueryController.js: |
| (WI.ResourceQueryController.prototype._findQueryMatches): |
| Allow the `searchIndex` to go past the end of the `searchString` to allow for backtracking |
| if the last character of `searchString` is not found in `query`. |
| |
| 2018-10-04 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r236783): Uncaught Exception: Can't find variable: sourceMapURL |
| https://bugs.webkit.org/show_bug.cgi?id=190276 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: merge SourceMapManager into NetworkManager |
| https://bugs.webkit.org/show_bug.cgi?id=190224 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| |
| * UserInterface/Controllers/NetworkManager.js: |
| (WI.NetworkManager): |
| (WI.NetworkManager.prototype.downloadSourceMap): Added. |
| (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache): |
| (WI.NetworkManager.prototype.resourceRequestDidFinishLoading): |
| (WI.NetworkManager.prototype._createResource): |
| (WI.NetworkManager.prototype._loadAndParseSourceMap): Added. |
| (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added. |
| (WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added. |
| (WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added. |
| * UserInterface/Controllers/SourceMapManager.js: Removed. |
| |
| * UserInterface/Models/Script.js: |
| (WI.Script): |
| |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: |
| |
| 2018-10-02 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown |
| https://bugs.webkit.org/show_bug.cgi?id=190114 |
| <rdar://problem/44891030> |
| |
| Reviewed by Matt Baker. |
| |
| This change only affects the experimental multiple properties selection. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): |
| Without this code, the focus outline flickers on click (after mousedown but before mouseup event). |
| |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField): |
| (WI.SpreadsheetTextField.prototype._handleMouseUp): |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: prevent layer events from firing until the layer information is re-requested |
| https://bugs.webkit.org/show_bug.cgi?id=190159 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/LayerTreeManager.js: |
| (WI.LayerTreeManager): |
| (WI.LayerTreeManager.prototype.get supported): |
| Remove `supported` member variable in favor of re-evaluating its value. |
| |
| * UserInterface/Protocol/LayerTreeObserver.js: |
| (WI.LayerTreeObserver.prototype.layerTreeDidChange): |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists |
| https://bugs.webkit.org/show_bug.cgi?id=190226 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/ConsoleManager.js: |
| (WI.ConsoleManager.prototype.issuesForSourceCode): |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: rename frontend managers to be more consistent with backend agents |
| https://bugs.webkit.org/show_bug.cgi?id=190160 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| * UserInterface/Base/DOMUtilities.js: |
| * UserInterface/Controllers/ApplicationCacheManager.js: |
| * UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js. |
| * UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js. |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| * UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js. |
| * UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js. |
| * UserInterface/Controllers/DashboardManager.js: Removed. |
| * UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js. |
| * UserInterface/Controllers/HARBuilder.js: |
| * UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js. |
| * UserInterface/Controllers/IssueManager.js: Removed. |
| * UserInterface/Controllers/JavaScriptLogViewController.js: |
| * UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js. |
| * UserInterface/Controllers/SourceMapManager.js: |
| * UserInterface/Controllers/TimelineManager.js: |
| * UserInterface/Debug/UncaughtExceptionReporter.js: |
| * UserInterface/Models/CSSProperty.js: |
| * UserInterface/Models/CSSSelector.js: |
| * UserInterface/Models/CallFrame.js: |
| * UserInterface/Models/Canvas.js: |
| * UserInterface/Models/ConsoleMessage.js: |
| * UserInterface/Models/DOMBreakpoint.js: |
| * UserInterface/Models/DOMNode.js: |
| * UserInterface/Models/DOMNodeStyles.js: |
| * UserInterface/Models/DOMTree.js: |
| * UserInterface/Models/DefaultDashboard.js: |
| * UserInterface/Models/Script.js: |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| * UserInterface/Models/SourceMapResource.js: |
| * UserInterface/Models/TimelineRecording.js: |
| * UserInterface/Protocol/CSSObserver.js: |
| * UserInterface/Protocol/ConsoleObserver.js: |
| * UserInterface/Protocol/DOMObserver.js: |
| * UserInterface/Protocol/DOMStorageObserver.js: |
| * UserInterface/Protocol/DatabaseObserver.js: |
| * UserInterface/Protocol/InspectorFrontendAPI.js: |
| * UserInterface/Protocol/InspectorObserver.js: |
| * UserInterface/Protocol/MainTarget.js: |
| * UserInterface/Protocol/NetworkObserver.js: |
| * UserInterface/Protocol/PageObserver.js: |
| * UserInterface/Protocol/RemoteObject.js: |
| * UserInterface/Protocol/RuntimeObserver.js: |
| * UserInterface/Protocol/WorkerTarget.js: |
| * UserInterface/Views/BoxModelDetailsSectionRow.js: |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| * UserInterface/Views/CanvasTreeElement.js: |
| * UserInterface/Views/ContentView.js: |
| * UserInterface/Views/ContextMenuUtilities.js: |
| * UserInterface/Views/CookieStorageContentView.js: |
| * UserInterface/Views/DOMDetailsSidebarPanel.js: |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.js: |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| * UserInterface/Views/DOMTreeContentView.js: |
| * UserInterface/Views/DOMTreeDataGrid.js: |
| * UserInterface/Views/DOMTreeElement.js: |
| * UserInterface/Views/DOMTreeElementPathComponent.js: |
| * UserInterface/Views/DOMTreeOutline.js: |
| * UserInterface/Views/DOMTreeUpdater.js: |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| * UserInterface/Views/ElementsTabContentView.js: |
| * UserInterface/Views/EventBreakpointPopover.js: |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| * UserInterface/Views/FormattedValue.js: |
| * UserInterface/Views/FrameTreeElement.js: |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js: |
| * UserInterface/Views/LayerDetailsSidebarPanel.js: |
| * UserInterface/Views/LayerTreeDataGridNode.js: |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| * UserInterface/Views/Layers3DContentView.js: |
| * UserInterface/Views/LogContentView.js: |
| * UserInterface/Views/NetworkTableContentView.js: |
| * UserInterface/Views/ObjectTreeBaseTreeElement.js: |
| * UserInterface/Views/ObjectTreeView.js: |
| * UserInterface/Views/OpenResourceDialog.js: |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| * UserInterface/Views/SearchSidebarPanel.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| * UserInterface/Views/StorageSidebarPanel.js: |
| * UserInterface/Views/StyleDetailsPanel.js: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: |
| |
| 2018-10-02 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts |
| https://bugs.webkit.org/show_bug.cgi?id=190026 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.constantNameForParameter): Added. |
| (WI.RecordingAction.prototype.getColorParameters): |
| (WI.RecordingAction.prototype.getImageParameters): |
| Drive-by: add additional swatches to color/image arguments for WebGL actions. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action. |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._generateDOM.createParameterElement): |
| (WI.RecordingActionTreeElement._generateDOM): |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.item.action > .titles .parameter.constant): Added. |
| |
| 2018-10-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Fix a typo for execution context identifier |
| https://bugs.webkit.org/show_bug.cgi?id=190185 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/MainTarget.js: |
| (WI.MainTarget): |
| * UserInterface/Protocol/WorkerTarget.js: |
| (WI.WorkerTarget): |
| |
| 2018-10-01 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove analyzer manager |
| https://bugs.webkit.org/show_bug.cgi?id=190162 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| |
| * UserInterface/Controllers/AnalyzerManager.js: Removed. |
| * UserInterface/Models/AnalyzerMessage.js: Removed. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| * UserInterface/External/ESLint/LICENSE: Removed. |
| * UserInterface/External/ESLint/eslint.js: Removed. |
| |
| 2018-10-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: add an experimental setting for multi-property selection |
| https://bugs.webkit.org/show_bug.cgi?id=190053 |
| <rdar://problem/44842787> |
| |
| Reviewed by Matt Baker. |
| |
| This patch only adds a setting. It doesn't change property selection behavior. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-10-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: use the same CSS variables for dark and light modes |
| https://bugs.webkit.org/show_bug.cgi?id=189766 |
| <rdar://problem/44619650> |
| |
| Use --text-color and --background-color CSS variables for both dark and light modes. |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/BreakpointPopoverController.css: |
| (.popover .edit-breakpoint-popover-content > label.toggle): |
| Color of the label matches the color of the popover, no need to specify it. |
| |
| (.edit-breakpoint-popover-condition): |
| (@media (prefers-dark-interface)): |
| (.popover .edit-breakpoint-popover-content > table > tr > th): |
| * UserInterface/Views/CompletionSuggestionsView.css: |
| (.completion-suggestions-container > .item): |
| (@media (prefers-dark-interface)): |
| (.completion-suggestions): |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)): |
| (.computed-style-properties .property:hover .go-to-arrow): |
| (@media (prefers-dark-interface)): Deleted. |
| (.computed-style-properties.details-section): Deleted. |
| (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted. |
| * UserInterface/Views/DOMTreeOutline.css: |
| (.tree-outline.dom): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/DataGrid.css: |
| (.data-grid th): |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle): |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule): |
| * UserInterface/Views/InlineSwatch.css: |
| (.inline-swatch): |
| (.inline-swatch-variable-popover .CodeMirror pre): |
| (@media (prefers-dark-interface)): Deleted. |
| * UserInterface/Views/NetworkResourceDetailView.css: |
| (.network-resource-detail): |
| (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): |
| (@media (prefers-dark-interface)): |
| (.resource-headers .value): Deleted. |
| Move this rule to ResourceHeadersContentView.css. |
| |
| * UserInterface/Views/ObjectPreviewView.css: |
| (.object-preview): |
| (@media (prefers-dark-interface)): |
| (.object-preview .name): |
| * UserInterface/Views/ObjectTreeView.css: |
| (.object-tree): |
| (.object-tree-property :matches(.formatted-string, .formatted-regexp)): |
| (@media (prefers-dark-interface)): Deleted. |
| (.object-tree,): Deleted. |
| |
| (.object-preview .name): Deleted. |
| (.object-preview > .size): Deleted. |
| Move these rules to ObjectPreviewView.css. |
| |
| * UserInterface/Views/QuickConsole.css: |
| (.quick-console): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (.resource-headers .value): |
| (.resource-headers.showing-find-banner .search-highlight): |
| (@media (prefers-dark-interface)): Deleted. |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .property:not(.disabled) .value): |
| (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *): |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-style-declaration-editor .property.has-warning .warning): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration .media-label): |
| (.spreadsheet-css-declaration .selector:focus,): |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-css-declaration .origin .go-to-link,): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header): |
| * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: |
| (.cm-s-default,): |
| (@media (prefers-dark-interface)): |
| (.syntax-highlighted,): Deleted. |
| * UserInterface/Views/Table.css: |
| (.table): |
| (.table > .header): |
| * UserInterface/Views/TimelineOverview.css: |
| (.timeline-overview > .navigation-bar.timelines): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/TimelineRecordingContentView.css: |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows): |
| (.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner): |
| (@media (prefers-dark-interface)): Deleted. |
| * UserInterface/Views/Variables.css: |
| (:root): |
| (@media (prefers-dark-interface)): |
| * UserInterface/Views/XHRBreakpointPopover.css: |
| (.popover .xhr-breakpoint-content > .editor-wrapper > .editor): |
| (@media (prefers-dark-interface)): |
| |
| 2018-09-28 Andy Estes <aestes@apple.com> |
| |
| REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type |
| https://bugs.webkit.org/show_bug.cgi?id=190096 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-09-28 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Remove the "in-store" button type |
| https://bugs.webkit.org/show_bug.cgi?id=190079 |
| |
| Reviewed by Tim Horton. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-09-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: image resources without content are still shown when the Images folder is selected |
| https://bugs.webkit.org/show_bug.cgi?id=190072 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ResourceContentView.js: |
| (WI.ResourceContentView.prototype.showGenericNoContentMessage): |
| Treat paths that result in a "Resource has no content" message as a "content error". |
| |
| 2018-09-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Hide DOM and XHR breakpoint sections when they are empty |
| https://bugs.webkit.org/show_bug.cgi?id=182406 |
| <rdar://problem/37131512> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints" |
| section, including all the various "+" buttons for creating different types of breakpoints. |
| |
| Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable, |
| and can be re-added via the "+" button of the "Breakpoints" section. Deletable global |
| breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while |
| disabled, and will only be hidden when the user specifically deletes them. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Main.html: |
| |
| * UserInterface/Controllers/DOMBreakpointTreeController.js: Removed. |
| * UserInterface/Controllers/EventBreakpointTreeController.js: Removed. |
| * UserInterface/Controllers/XHRBreakpointTreeController.js: Removed. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added. |
| (WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added. |
| (WI.DebuggerManager.prototype.isBreakpointRemovable): |
| (WI.DebuggerManager.prototype.isBreakpointSpecial): Added. |
| (WI.DebuggerManager.prototype.isBreakpointEditable): |
| (WI.DebuggerManager.prototype.addBreakpoint): |
| (WI.DebuggerManager.prototype.removeBreakpoint): |
| (WI.DebuggerManager.prototype.initializeTarget): |
| (WI.DebuggerManager.prototype._breakpointDisabledStateDidChange): |
| (WI.DebuggerManager.prototype._updateBreakOnExceptionsState): |
| (WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted. |
| (WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted. |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added. |
| (WI.DOMDebuggerManager.prototype.addDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.addXHRBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint): |
| (WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted. |
| Always fire add/remove events, including for special breakpoints, so that any listeners will |
| be able to adjust accordingly. Even though special breakpoints don't get stored in the lists |
| held by each manager, we are still able to enable/disable them, and that should be reported. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype.closed): |
| (WI.DebuggerSidebarPanel.prototype.saveStateToCookie): |
| (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect): |
| (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie): |
| (WI.DebuggerSidebarPanel.prototype.willDismissPopover): |
| (WI.DebuggerSidebarPanel.prototype._addBreakpoint): |
| (WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added. |
| (WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline): |
| (WI.DebuggerSidebarPanel.prototype._mainResourceDidChange): |
| (WI.DebuggerSidebarPanel.prototype._breakpointRemoved): |
| (WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement): |
| (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added. |
| (WI.DebuggerSidebarPanel.prototype._addTreeElement): Added. |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added. |
| (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added. |
| (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added. |
| (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted. |
| (WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted. |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted. |
| (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted. |
| (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted. |
| (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted. |
| Unify the logic for adding/removing breakpoints of all types. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement): |
| (WI.BreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement): |
| (WI.DOMBreakpointTreeElement.prototype.ondelete): |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement): |
| (WI.DOMNodeTreeElement.prototype.ondelete): |
| (WI.DOMNodeTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| (WI.EventBreakpointTreeElement.prototype.ondelete): |
| (WI.EventBreakpointTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/XHRBreakpointTreeElement.js: |
| (WI.XHRBreakpointTreeElement): |
| (WI.XHRBreakpointTreeElement.prototype.ondelete): |
| (WI.XHRBreakpointTreeElement.prototype.populateContextMenu): |
| * UserInterface/Views/XHRBreakpointTreeElement.css: Added. |
| (.breakpoint.xhr .subtitle): |
| Add/remove checks for whether the associated breakpoint can be deleted. |
| |
| * UserInterface/Views/DOMNodeTreeElement.css: Added. |
| (.tree-outline .item.dom-node .titles): |
| (.tree-outline .item.dom-node .icon): |
| (.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow): |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| (WI.appendContextMenuItemsForDOMNodeBreakpoints): Added. |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._statusImageContextmenu): |
| |
| * UserInterface/Views/XHRBreakpointPopover.js: |
| (WI.XHRBreakpointPopover): |
| (WI.XHRBreakpointPopover.prototype.get breakpoint): Added. |
| (WI.XHRBreakpointPopover.prototype.show): |
| (WI.XHRBreakpointPopover.prototype.dismiss): Added. |
| (WI.XHRBreakpointPopover.prototype._createEditor): |
| (WI.XHRBreakpointPopover.prototype._updateEditor): |
| (WI.XHRBreakpointPopover.prototype.get result): Deleted. |
| (WI.XHRBreakpointPopover.prototype.get type): Deleted. |
| (WI.XHRBreakpointPopover.prototype.get value): Deleted. |
| Drive-by: remove the erroneous usage of `WI.InputPopover.Result`. |
| |
| 2018-09-26 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed |
| https://bugs.webkit.org/show_bug.cgi?id=189860 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process.getContent): |
| (WI.RecordingAction.prototype.process): |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement.prototype.onattach): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype._updateImageGrid): |
| Drive-by: don't attempt to show the image grid if we haven't called initialized yet. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action. |
| |
| 2018-09-26 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: new watch expression popover has light background |
| https://bugs.webkit.org/show_bug.cgi?id=190013 |
| <rdar://problem/44810000> |
| |
| Reviewed by Matt Baker. |
| |
| Make the background dark to match the CodeMirror editor background. |
| |
| * UserInterface/Views/ScopeChainDetailsSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.watch-expression-editor): |
| |
| 2018-09-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r236237): Web Inspector: DarkMode: white background in Elements and Timelines |
| https://bugs.webkit.org/show_bug.cgi?id=189852 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/Main.css: |
| (body): |
| (#main): |
| |
| 2018-09-21 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: remove unnecessary WI.Platform.version checks |
| https://bugs.webkit.org/show_bug.cgi?id=189845 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Platform.js: |
| (osVersionMatch): Add name for macOS Mojave. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Views/Popover.js: |
| Remove old logic that's no longer needed. |
| |
| 2018-09-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove setting for Sources tab |
| https://bugs.webkit.org/show_bug.cgi?id=189817 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Main.html: |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI._debuggerDidPause): |
| (WI.isShowingSourcesTab): Removed. |
| (WI.showSourcesTab): Removed. |
| |
| * UserInterface/Views/SourcesSidebarPanel.css: Removed. |
| * UserInterface/Views/SourcesSidebarPanel.js: Removed. |
| * UserInterface/Views/SourcesTabContentView.js: Removed. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForURL): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu): |
| |
| 2018-09-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Make "overflow: overlay" a synonym for "overflow: auto" |
| https://bugs.webkit.org/show_bug.cgi?id=189811 |
| |
| Reviewed by Zalan Bujtas. |
| |
| Remove "overlay" from the overflow values. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| * UserInterface/Views/VisualStyleDetailsPanel.js: |
| (WI.VisualStyleDetailsPanel.prototype._populateDisplaySection): |
| |
| 2018-09-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: hide Accessibility Audit Tab setting |
| https://bugs.webkit.org/show_bug.cgi?id=189816 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Considering that this tab doesn't exist, there's no reason to have a setting/UI for it. |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-09-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove Legacy Style Editor |
| https://bugs.webkit.org/show_bug.cgi?id=189808 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The Legacy Style Editor has been hidden behind an "experimental" setting for almost a year. |
| It's time that we remove it, especially since the new Style Editor is at a similar, if not |
| more advanced, state. |
| |
| * .eslintrc: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj: |
| * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters: |
| * Localizations/en.lproj/localizedStrings.js: |
| * Tools/PrettyPrinting/index.html: |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * UserInterface/Base/Setting.js: |
| |
| * UserInterface/Base/TextUtilities.js: Removed. |
| * UserInterface/Base/Utilities.js: |
| |
| * UserInterface/Views/RulesStyleDetailsPanel.css: Removed. |
| * UserInterface/Views/RulesStyleDetailsPanel.js: Removed. |
| * UserInterface/Views/CSSStyleDeclarationSection.css: Removed. |
| * UserInterface/Views/CSSStyleDeclarationSection.js: Removed. |
| * UserInterface/Views/CSSStyleDeclarationTextEditor.css: Removed. |
| * UserInterface/Views/CSSStyleDeclarationTextEditor.js: Removed. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.get text): |
| (WI.CSSProperty.prototype.get synthesizedText): Deleted. |
| |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.set text): |
| (WI.CSSStyleDeclaration.prototype.resetText): Deleted. |
| (WI.CSSStyleDeclaration.prototype.get modified): Deleted. |
| (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Deleted. |
| (WI.CSSStyleDeclaration.prototype.isInspectorRule): Deleted. |
| |
| * UserInterface/Models/CSSSelector.js: |
| (WI.CSSSelector.prototype.isGreaterThan): Deleted. |
| |
| * UserInterface/Models/CSSRule.js: |
| (WI.CSSRule.prototype.update): |
| (WI.CSSRule.prototype.get matchedSelectors): Deleted. |
| (WI.CSSRule.prototype.get matchedSelectorText): Deleted. |
| (WI.CSSRule.prototype.hasMatchedPseudoElementSelector): Deleted. |
| (WI.CSSRule.prototype.get mediaText): Deleted. |
| (WI.CSSRule.prototype.get mostSpecificSelector): Deleted. |
| (WI.CSSRule.prototype.selectorIsGreater): Deleted. |
| (WI.CSSRule.prototype._determineMostSpecificSelector): Deleted. |
| |
| * UserInterface/Models/DOMNodeStyles.js: |
| (WI.DOMNodeStyles.prototype.changeRule.changeCompleted): Deleted. |
| (WI.DOMNodeStyles.prototype.changeRule.styleChanged): Deleted. |
| (WI.DOMNodeStyles.prototype.changeRule.changeText): Deleted. |
| (WI.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged): Deleted. |
| (WI.DOMNodeStyles.prototype.changeRule): Deleted. |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions.prototype.isValidPropertyName): |
| (WI.CSSCompletions): |
| (WI.CSSCompletions.prototype.keySet): Deleted. |
| (WI.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Deleted. |
| (WI.CSSCompletions.prototype.getClosestPropertyName): Deleted. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): Deleted. |
| |
| * UserInterface/Views/RulesStyleDetailsSidebarPanel.js: |
| (WI.RulesStyleDetailsSidebarPanel): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingRuleSelector): Added. |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector): Deleted. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (.sidebar > .panel.details.css-style .rules): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules > .message-text-view): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view): Added. |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added. |
| (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added. |
| (.spreadsheet-style-panel .section-header): Deleted. |
| (.spreadsheet-style-panel .section-header .node-link): Deleted. |
| (.spreadsheet-style-panel .section-header .node-link:hover): Deleted. |
| (.spreadsheet-style-panel .section-header): Deleted. |
| (.spreadsheet-style-panel .section-header .node-link:hover): Deleted. |
| |
| * UserInterface/Views/CodeMirrorAdditions.js: |
| (extendedCSSRuleStartState): Removed. |
| * UserInterface/Views/CodeMirrorFormatters.js: |
| Remove "css-rule" CodeMirror mode. |
| |
| * UserInterface/Views/CodeMirrorTextMarkers.js: |
| (createCodeMirrorVariableTextMarkers): Deleted. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-09-21 Mike Gorse <mgorse@suse.com> |
| |
| Build tools should work when the /usr/bin/python is python3 |
| https://bugs.webkit.org/show_bug.cgi?id=156674 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Scripts/copy-user-interface-resources.pl: Use $PYTHON if set |
| in the environment. |
| |
| 2018-09-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: remove Visual Style CSS details sidebar panel |
| https://bugs.webkit.org/show_bug.cgi?id=189807 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The Visual Style CSS details sidebar panel has been hidden behind an "experimental" setting |
| for almost a year. It's time that we remove it. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Main.html: |
| |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| * UserInterface/Images/AnimationPlayStatePaused.svg: Removed. |
| * UserInterface/Images/AnimationPlayStateRunning.svg: Removed. |
| * UserInterface/Images/ClearBoth.svg: Removed. |
| * UserInterface/Images/ClearLeft.svg: Removed. |
| * UserInterface/Images/ClearRight.svg: Removed. |
| * UserInterface/Images/FloatLeft.svg: Removed. |
| * UserInterface/Images/FloatRight.svg: Removed. |
| * UserInterface/Images/FontStyleItalic.svg: Removed. |
| * UserInterface/Images/FontStyleNormal.svg: Removed. |
| * UserInterface/Images/ListStylePositionInside.svg: Removed. |
| * UserInterface/Images/ListStylePositionOutside.svg: Removed. |
| * UserInterface/Images/TextAlignCenter.svg: Removed. |
| * UserInterface/Images/TextAlignJustify.svg: Removed. |
| * UserInterface/Images/TextAlignLeft.svg: Removed. |
| * UserInterface/Images/TextAlignRight.svg: Removed. |
| * UserInterface/Images/TextDecorationLineThrough.svg: Removed. |
| * UserInterface/Images/TextDecorationOverline.svg: Removed. |
| * UserInterface/Images/TextDecorationUnderline.svg: Removed. |
| * UserInterface/Images/TextTransformCapitalize.svg: Removed. |
| * UserInterface/Images/TextTransformLowercase.svg: Removed. |
| * UserInterface/Images/TextTransformUppercase.svg: Removed. |
| * UserInterface/Images/VisualStyleNone.svg: Removed. |
| * UserInterface/Images/VisualStylePropertyLinked.svg: Removed. |
| * UserInterface/Images/VisualStylePropertyUnlinked.svg: Removed. |
| |
| * UserInterface/Views/VisualStyleBackgroundPicker.css: Removed. |
| * UserInterface/Views/VisualStyleBackgroundPicker.js: Removed. |
| * UserInterface/Views/VisualStyleBasicInput.js: Removed. |
| * UserInterface/Views/VisualStyleColorPicker.css: Removed. |
| * UserInterface/Views/VisualStyleColorPicker.js: Removed. |
| * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Removed. |
| * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Removed. |
| * UserInterface/Views/VisualStyleDetailsPanel.css: Removed. |
| * UserInterface/Views/VisualStyleDetailsPanel.js: Removed. |
| * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Removed. |
| * UserInterface/Views/VisualStyleFontFamilyListEditor.js: Removed. |
| * UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Removed. |
| * UserInterface/Views/VisualStyleKeywordCheckbox.css: Removed. |
| * UserInterface/Views/VisualStyleKeywordCheckbox.js: Removed. |
| * UserInterface/Views/VisualStyleKeywordIconList.css: Removed. |
| * UserInterface/Views/VisualStyleKeywordIconList.js: Removed. |
| * UserInterface/Views/VisualStyleKeywordPicker.js: Removed. |
| * UserInterface/Views/VisualStyleNumberInputBox.css: Removed. |
| * UserInterface/Views/VisualStyleNumberInputBox.js: Removed. |
| * UserInterface/Views/VisualStylePropertyCombiner.js: Removed. |
| * UserInterface/Views/VisualStylePropertyEditor.css: Removed. |
| * UserInterface/Views/VisualStylePropertyEditor.js: Removed. |
| * UserInterface/Views/VisualStylePropertyEditorLink.css: Removed. |
| * UserInterface/Views/VisualStylePropertyEditorLink.js: Removed. |
| * UserInterface/Views/VisualStylePropertyNameInput.js: Removed. |
| * UserInterface/Views/VisualStyleRelativeNumberSlider.css: Removed. |
| * UserInterface/Views/VisualStyleRelativeNumberSlider.js: Removed. |
| * UserInterface/Views/VisualStyleSelectorSection.css: Removed. |
| * UserInterface/Views/VisualStyleSelectorSection.js: Removed. |
| * UserInterface/Views/VisualStyleSelectorTreeItem.css: Removed. |
| * UserInterface/Views/VisualStyleSelectorTreeItem.js: Removed. |
| * UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Removed. |
| * UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Removed. |
| * UserInterface/Views/VisualStyleTimingEditor.css: Removed. |
| * UserInterface/Views/VisualStyleTimingEditor.js: Removed. |
| * UserInterface/Views/VisualStyleURLInput.js: Removed. |
| * UserInterface/Views/VisualStyleUnitSlider.css: Removed. |
| * UserInterface/Views/VisualStyleUnitSlider.js: Removed. |
| |
| * UserInterface/Controllers/VisualStyleCompletionsController.js: Removed. |
| |
| 2018-09-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes |
| https://bugs.webkit.org/show_bug.cgi?id=183627 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel): |
| (WI.ComputedStyleDetailsPanel.prototype.refresh): |
| (WI.ComputedStyleDetailsPanel.prototype.applyFilter): |
| (WI.ComputedStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationEditorShowProperty): |
| (WI.ComputedStyleDetailsPanel.prototype.initialLayout): |
| (WI.ComputedStyleDetailsPanel.prototype.filterDidChange): |
| (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged): |
| (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged): |
| (WI.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged): |
| (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied): |
| (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty): Deleted. |
| (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Deleted. |
| Replace CSSStyleDeclarationTextEditor with SpreadsheetCSSStyleDeclarationEditor. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set showsImplicitProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set alwaysShowPropertyNames): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set propertyVisibilityMode): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set hideFilterNonMatchingProperties): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set sortPropertiesByName): Added. |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyShowProperty): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender): Deleted. |
| Create setters for the "special" functionality required by the Computed panel and tie them |
| into the logic that determines what properties are rendered. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._update): |
| Create go-to arrow if the property has a shorthand version or a source code location. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout): |
| Don't reapply the filter after refreshing, as the current panel will handle applying it. |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)): |
| (.computed-style-properties .property .go-to-arrow): |
| (.computed-style-properties .property:hover .go-to-arrow): |
| (.computed-style-properties.details-section): Deleted. |
| (.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow): Deleted. |
| (.details-section > .content > .group > .row .CodeMirror-code pre:hover .go-to-arrow): Deleted. |
| (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted. |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section.computed-style-properties:not(.collapsed) > .header): Deleted. |
| Consolidate Computed panel styles to it's respective CSS file. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor): |
| (.spreadsheet-style-declaration-editor .property:matches(.implicit, .not-inherited) .content > *): |
| (.spreadsheet-style-declaration-editor .property.not-inherited .content > *): Deleted. |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (.spreadsheet-css-declaration): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| Move `css-declaration` padding variables so they can be used by SpreadsheetCSSStyleDeclarationEditor |
| without a parent SpreadsheetCSSStyleDeclarationSection. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (.style-spreadsheet .style-rule): Deleted. |
| (.style-spreadsheet .selector-line): Deleted. |
| (.style-spreadsheet .selector): Deleted. |
| (.style-spreadsheet :matches(.selector .matched, .selector:focus)): Deleted. |
| (.style-spreadsheet .name): Deleted. |
| (.style-spreadsheet .value): Deleted. |
| (.style-spreadsheet :matches(.selector, .name, .value)): Deleted. |
| (.style-spreadsheet :matches(.selector, .name, .value):focus): Deleted. |
| (.style-spreadsheet .selector-inline): Deleted. |
| (.style-spreadsheet .property): Deleted. |
| (.style-spreadsheet .property-disabled,): Deleted. |
| (.style-spreadsheet .property-disabled :matches(.name, .value)): Deleted. |
| (.style-spreadsheet .styles-source): Deleted. |
| (.style-spreadsheet :matches(a, .node-link)): Deleted. |
| (.style-spreadsheet :matches(a, .node-link):hover): Deleted. |
| (.style-spreadsheet .declarations): Deleted. |
| (.style-spreadsheet input[type="checkbox"]): Deleted. |
| (.style-spreadsheet input[type="checkbox"]:not(:checked)): Deleted. |
| (.style-spreadsheet .declarations:hover input[type="checkbox"]): Deleted. |
| Drive-by fix: remove styles that don't apply to anything. |
| |
| 2018-09-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: move DarkMode.css rules into appropriate CSS files |
| https://bugs.webkit.org/show_bug.cgi?id=189673 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/BezierEditor.css: |
| (@media (prefers-dark-interface)): |
| (.bezier-editor > .bezier-preview-timing): |
| (.bezier-editor > .bezier-container .bezier-curve): |
| (.bezier-editor > .bezier-container .linear-curve): |
| (.bezier-editor > .bezier-preview): |
| (.bezier-editor > .bezier-preview > div): |
| (.bezier-editor > .bezier-container .control-handle): |
| (.bezier-editor > .bezier-container .control-line): |
| * UserInterface/Views/BreakpointActionView.css: |
| (@media (prefers-dark-interface)): |
| (.breakpoint-action-block-body): |
| (.breakpoint-action-block-body > .description): |
| (.breakpoint-action-append-button,): |
| (.breakpoint-action-eval-editor): |
| * UserInterface/Views/BreakpointPopoverController.css: |
| (@media (prefers-dark-interface)): |
| (.popover .edit-breakpoint-popover-content > label.toggle): |
| (.popover .edit-breakpoint-popover-content > table > tr > th): |
| (.edit-breakpoint-popover-condition): |
| * UserInterface/Views/ButtonNavigationItem.css: |
| (@media (prefers-dark-interface)): |
| (.navigation-bar .item.button): |
| * UserInterface/Views/ButtonToolbarItem.css: |
| (@media (prefers-dark-interface)): |
| (.toolbar .item.button): |
| (.toolbar .item.button:not(.disabled):active): |
| (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)): |
| (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)): |
| * UserInterface/Views/CallFrameView.css: |
| (@media (prefers-dark-interface)): |
| (.call-frame .subtitle,): |
| (.call-frame:hover .subtitle .source-link,): |
| (.call-frame .separator): |
| * UserInterface/Views/CanvasContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.canvas:not(.tab)): |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.canvas-overview): |
| (.content-view.canvas-overview .content-view.canvas): |
| (.content-view.canvas-overview .content-view.canvas.is-recording): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header): |
| (.content-view.canvas-overview .content-view.canvas > header > .titles > .title): |
| (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,): |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): |
| * UserInterface/Views/CanvasTabContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon,): |
| (.content-view.canvas > .preview > img,): |
| * UserInterface/Views/CodeMirrorOverrides.css: |
| (@media (prefers-dark-interface)): |
| (.CodeMirror-cursor): |
| (.CodeMirror .CodeMirror-gutters): |
| (.cm-s-default .cm-link): |
| (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket): |
| * UserInterface/Views/CompletionSuggestionsView.css: |
| (@media (prefers-dark-interface)): |
| (.completion-suggestions): |
| (.completion-suggestions-container > .item): |
| * UserInterface/Views/ComputedStyleDetailsPanel.css: |
| (@media (prefers-dark-interface)): |
| (.computed-style-properties.details-section): |
| (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): |
| * UserInterface/Views/ConsoleMessageView.css: |
| (@media (prefers-dark-interface)): |
| (.console-message .syntax-highlighted): |
| (.console-warning-level .console-message-text): |
| (.console-error-level .console-message-text): |
| (.console-user-command > .console-message-text): |
| (.console-message .repeat-count): |
| * UserInterface/Views/ConsolePrompt.css: |
| (@media (prefers-dark-interface)): |
| (.console-prompt): |
| * UserInterface/Views/DOMNodeDetailsSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover): |
| * UserInterface/Views/DOMTreeOutline.css: |
| (@media (prefers-dark-interface)): |
| (.tree-outline.dom): |
| (.tree-outline.dom li.elements-drag-over .selection-area): |
| (.tree-outline.dom li.selected .selection-area): |
| (.tree-outline.dom:focus li.selected .selection-area): |
| (.tree-outline.dom li.selected + ol.children.expanded): |
| (.tree-outline.dom .shadow): |
| (.tree-outline.dom li.parent.shadow + ol.children.expanded,): |
| (.showing-find-banner .tree-outline.dom .search-highlight): |
| * UserInterface/Views/DarkMode.css: Removed. |
| * UserInterface/Views/DataGrid.css: |
| (@media (prefers-dark-interface)): |
| (.data-grid th): |
| (.data-grid td .subtitle): |
| (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): |
| (.data-grid tr.editable .cell-content > input): |
| (.data-grid td.spanning): |
| * UserInterface/Views/DebuggerDashboardView.css: |
| (@media (prefers-dark-interface)): |
| (.toolbar .dashboard.debugger): |
| (.dashboard.debugger .navigation-bar .item.button > .glyph): |
| (.dashboard.debugger > .location .function-name): |
| (.dashboard.debugger > .location .go-to-link): |
| (.dashboard.debugger > .divider): |
| * UserInterface/Views/DefaultDashboardView.css: |
| (@media (prefers-dark-interface)): |
| (.toolbar .dashboard.default > .item > div): |
| (.toolbar .dashboard.default > .item.enabled > div): |
| (.toolbar .dashboard.default > .item.enabled:hover): |
| (.toolbar .dashboard.default > .item.enabled:hover > div): |
| (.toolbar .dashboard.default > .resourcesCount > img,): |
| (body.latest-mac .toolbar .dashboard .item.button): |
| (.dashboard-container .advance-arrow): |
| * UserInterface/Views/DetailsSection.css: |
| (@media (prefers-dark-interface)): |
| (.details-section > .header): |
| (.details-section > .header > label): |
| (.details-section .details-section,): |
| (.details-section .details-section:not(.collapsed) > .header): |
| (.details-section > .content > .group > .row.simple > .label): |
| (.details-section > .content > .group:nth-child(even)): |
| (.details-section > .content > .group > .row:matches(.empty, .text)): |
| * UserInterface/Views/DividerNavigationItem.css: |
| (@media (prefers-dark-interface)): |
| (.navigation-bar .item.divider): |
| * UserInterface/Views/Editing.css: |
| (@media (prefers-dark-interface)): |
| (.editing): |
| (.editing, .editing *): |
| * UserInterface/Views/FindBanner.css: |
| (@media (prefers-dark-interface)): |
| (.find-banner > input[type="search"]): |
| (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)): |
| * UserInterface/Views/FontResourceContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.resource.font .preview > .line): |
| (.content-view.resource.font .metric.top): |
| (.content-view.resource.font .metric.baseline): |
| (.content-view.resource.font .metric.middle): |
| (.content-view.resource.font .metric.xheight): |
| (.content-view.resource.font .metric.bottom): |
| * UserInterface/Views/FormattedValue.css: |
| (@media (prefers-dark-interface)): |
| (.formatted-object,): |
| (.formatted-null,): |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle): |
| * UserInterface/Views/HoverMenu.css: |
| (@media (prefers-dark-interface)): |
| (.hover-menu > svg > :matches(path, rect)): |
| * UserInterface/Views/ImageResourceContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.resource.image): |
| * UserInterface/Views/InlineSwatch.css: |
| (@media (prefers-dark-interface)): |
| (.inline-swatch): |
| * UserInterface/Views/LogContentView.css: |
| (@media (prefers-dark-interface)): |
| (.console-messages): |
| (.console-item): |
| (.console-messages:focus .console-item.selected): |
| (.console-messages:focus .console-item.selected + .console-item): |
| (.console-session:first-of-type .console-session-header): |
| (.console-session:not(:first-of-type) .console-session-header): |
| (.console-messages a): |
| (.console-messages a:hover): |
| (.console-messages:focus .console-item.selected::after): |
| (.console-error-level): |
| (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item): |
| (.console-warning-level): |
| (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item): |
| (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted): |
| (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected): |
| * UserInterface/Views/Main.css: |
| (#main): |
| (@media (prefers-dark-interface)): |
| (.go-to-arrow): |
| (.resource-link,): |
| (.expand-list-button): |
| (:matches(img, canvas).show-grid): |
| * UserInterface/Views/NetworkResourceDetailView.css: |
| (@media (prefers-dark-interface)): |
| (.network-resource-detail): |
| (.network-resource-detail .item.close > .glyph): |
| (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): |
| (.resource-headers .value): |
| * UserInterface/Views/NetworkTableContentView.css: |
| (@media (prefers-dark-interface)): |
| (.network-table .cell.domain > .lock): |
| * UserInterface/Views/NewTabContentView.css: |
| (@media (prefers-dark-interface)): |
| (.new-tab.tab.content-view): |
| * UserInterface/Views/ObjectTreePropertyTreeElement.css: |
| (@media (prefers-dark-interface)): |
| (.object-tree-property .getter,): |
| (.item.object-tree-property.prototype-property): |
| (.object-tree-property.prototype-property:hover,): |
| (.object-tree-property .value.error): |
| * UserInterface/Views/ObjectTreeView.css: |
| (@media (prefers-dark-interface)): |
| (.object-tree,): |
| (.object-preview .name): |
| (.object-preview > .size): |
| * UserInterface/Views/OpenResourceDialog.css: |
| (@media (prefers-dark-interface)): |
| (.open-resource-dialog): |
| (.open-resource-dialog > .field > input): |
| (.open-resource-dialog > .field > input::placeholder): |
| (.open-resource-dialog > .tree-outline .item.selected): |
| (.open-resource-dialog > .field::before): |
| * UserInterface/Views/ProgressView.css: |
| (@media (prefers-dark-interface)): |
| (.progress-view > .titles > .title): |
| (.progress-view > .titles > .subtitle): |
| (.indeterminate-progress-spinner): |
| * UserInterface/Views/QuickConsole.css: |
| (@media (prefers-dark-interface)): |
| (.quick-console): |
| (.CodeMirror .jump-to-symbol-highlight,): |
| (.quick-console.showing-log): |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (@media (prefers-dark-interface)): |
| (.item.action:not(.initial-state)::before): |
| (.tree-outline .item.action.visual:not(.selected, .invalid)): |
| (.item.action:not(.initial-state) > .icon): |
| (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon): |
| * UserInterface/Views/RecordingContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view:not(.tab).recording): |
| (.content-view:not(.tab).recording > header > .slider-container): |
| (.content-view:not(.tab).recording > header > .slider-container > input[type=range]): |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified): |
| * UserInterface/Views/ResourceHeadersContentView.css: |
| (@media (prefers-dark-interface)): |
| (.resource-headers .value): |
| * UserInterface/Views/ResourceSizesContentView.css: |
| (@media (prefers-dark-interface)): |
| (.resource-sizes > .content .label): |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (@media (prefers-dark-interface)): |
| (.popover.waterfall-popover): |
| (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): |
| (.resource-timing-breakdown > table > tr > td.label,): |
| (.resource-timing-breakdown > table hr): |
| * UserInterface/Views/ScopeBar.css: |
| (@media (prefers-dark-interface)): |
| (.scope-bar > li): |
| * UserInterface/Views/SearchBar.css: |
| (@media (prefers-dark-interface)): |
| (:matches(.search-bar, .filter-bar) > input[type="search"],): |
| (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder): |
| (:matches(.search-bar, .filter-bar) > input[type="search"]:focus): |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (@media all): |
| * UserInterface/Views/SettingsTabContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.settings .navigation-bar): |
| (.content-view.settings .navigation-bar .item.radio.button.text-only.selected): |
| * UserInterface/Views/ShaderProgramContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.shader-program > .text-editor.shader): |
| (.content-view.shader-program > .text-editor.shader > .type-title): |
| * UserInterface/Views/ShaderProgramTreeElement.css: |
| (@media (prefers-dark-interface)): |
| (.item.shader-program .status > img): |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (@media (prefers-dark-interface)): |
| (.source-code.text-editor > .CodeMirror .error): |
| (.source-code.text-editor > .CodeMirror .warning): |
| (.source-code.text-editor > .CodeMirror .issue-widget): |
| (.source-code.text-editor > .CodeMirror .issue-widget.warning,): |
| (.source-code.text-editor > .CodeMirror .issue-widget.error,): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-style-declaration-editor .property:not(.disabled) .value): |
| (.spreadsheet-style-declaration-editor :matches(.name, .value).editing): |
| (.spreadsheet-style-declaration-editor .property.has-warning): |
| (.spreadsheet-style-declaration-editor .property.has-warning .warning): |
| (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css: |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-css-declaration): |
| (.spreadsheet-css-declaration.locked): |
| (.spreadsheet-css-declaration .selector.style-attribute): |
| (.spreadsheet-css-declaration .selector:focus,): |
| (.spreadsheet-css-declaration.locked .origin::after): |
| (.spreadsheet-css-declaration .origin .go-to-link,): |
| (.spreadsheet-css-declaration .media-label): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css: |
| (@media (prefers-dark-interface)): |
| (.spreadsheet-style-panel .section-header): |
| (.spreadsheet-style-panel .section-header .node-link:hover): |
| * UserInterface/Views/SyntaxHighlightingDefaultTheme.css: |
| (@media (prefers-dark-interface)): |
| (.syntax-highlighted,): |
| (.cm-s-default,): |
| (.cm-s-default .cm-attribute): |
| (.cm-s-default .cm-m-xml.cm-attribute,): |
| (.cm-s-default .cm-meta): |
| (.cm-s-default .cm-variable-3): |
| (.cm-s-default .cm-builtin): |
| * UserInterface/Views/TabBar.css: |
| (@media (prefers-dark-interface)): |
| (.tab-bar): |
| (.tab-bar > .item): |
| (.tab-bar > .item > .title): |
| (.tab-bar > .item:not(.disabled).selected): |
| (.tab-bar:not(.animating) > .item:not(.selected):hover): |
| (.tab-bar > .item > .close,): |
| (body.window-inactive .tab-bar): |
| (body.window-inactive .tab-bar > .item): |
| (body.window-inactive .tab-bar > .item.selected): |
| (body.window-inactive .tab-bar > .item > .title): |
| * UserInterface/Views/Table.css: |
| (@media (prefers-dark-interface)): |
| (.table,): |
| (.table > .header > .sortable:active): |
| (.table > .header > :matches(.sort-ascending, .sort-descending)): |
| (.table > .header > :matches(.sort-ascending, .sort-descending)::after): |
| * UserInterface/Views/TextEditor.css: |
| (@media (prefers-dark-interface)): |
| (.text-editor > .CodeMirror .execution-line): |
| (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),): |
| * UserInterface/Views/TimelineDataGrid.css: |
| (@media (prefers-dark-interface)): |
| (.data-grid th:matches(.sort-ascending, .sort-descending)): |
| * UserInterface/Views/TimelineIcons.css: |
| (@media (prefers-dark-interface)): |
| (.time-icon .icon): |
| * UserInterface/Views/TimelineOverview.css: |
| (@media (prefers-dark-interface)): |
| (.timeline-overview > .navigation-bar.timelines): |
| (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)): |
| (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),): |
| * UserInterface/Views/TimelineRecordingContentView.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows): |
| * UserInterface/Views/Toolbar.css: |
| (@media (prefers-dark-interface)): |
| (body .toolbar): |
| (body.window-inactive .toolbar): |
| (body.latest-mac .toolbar .item.button,): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]:focus): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder): |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder): |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button): |
| (body.latest-mac .toolbar .dashboard-container): |
| (body.latest-mac .toolbar .item.button:active): |
| (body.latest-mac.window-inactive .toolbar .item.button,): |
| * UserInterface/Views/TreeOutline.css: |
| (@media (prefers-dark-interface)): |
| (.tree-outline .item .subtitle): |
| * UserInterface/Views/Variables.css: |
| (@media (prefers-dark-interface)): |
| (:root): |
| (body.window-inactive): |
| (body.window-inactive *): |
| * UserInterface/Views/WebSocketContentView.css: |
| (@media (prefers-dark-interface)): |
| (.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/XHRBreakpointPopover.css: |
| (@media (prefers-dark-interface)): |
| (.popover .xhr-breakpoint-content > .editor-wrapper > .editor): |
| |
| 2018-09-17 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: generate CSSKeywordCompletions from backend values |
| https://bugs.webkit.org/show_bug.cgi?id=189041 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Moves the longhands map to `WI.CSSKeywordCompletions` for more global access. Creates an |
| aliases map to support completions on aliases with the same values as the non-alias name. |
| Removes all keyword-only properties from `WI.CSSKeywordCompletions._propertyKeywordMap` as |
| they are now generated by the backend (kept for compatibility). |
| |
| * UserInterface/Models/CSSCompletions.js: |
| (WI.CSSCompletions): |
| (WI.CSSCompletions.requestCSSCompletions.propertyNamesCallback): |
| (WI.CSSCompletions.prototype.isShorthandPropertyName): |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| (WI.CSSKeywordCompletions.forProperty.addKeywordsForName): Added. |
| (WI.CSSKeywordCompletions.forProperty): |
| (WI.CSSKeywordCompletions.addCustomCompletions): |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.isInheritedPropertyName): |
| |
| 2018-09-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: breakpoint context menu appears twice in DOM tree |
| https://bugs.webkit.org/show_bug.cgi?id=189308 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/DOMBreakpointTreeController.js: |
| (WI.DOMBreakpointTreeController.appendBreakpointContextMenuItems): |
| Set a symbol on the `contextMenu` to ensure that the same items are not added twice. |
| |
| 2018-09-14 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Source View doesn't scroll to show line when breakpoint is hit inside of <script> in HTML resource |
| https://bugs.webkit.org/show_bug.cgi?id=189638 |
| <rdar://problem/43359278> |
| |
| Reviewed by Matt Baker. |
| |
| Pausing in Document resources on page load have special considerations where we |
| may not receive their full content immediately, so we may synthesize inline script |
| content for the resource until we have full content. Unfortunately, when we get |
| full content and update the TextEditor we were losing the revealed position and |
| other editor information. This change specifically targets those cases, by |
| re-applying editor state when updating such a resource from partial to full content. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._contentAvailable): |
| Signal to the editor that when updating the content it should carry |
| over editor state. Only do this if we had partial content before. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor): |
| (WI.TextEditor.prototype.set repeatReveal): |
| Provide a way to signal we should restore state when update the content. |
| |
| (WI.TextEditor.set string.update): |
| (WI.TextEditor.prototype.set string): |
| When repeatReveal was enabled, restore editor state such as the |
| revealed location and text selection. |
| |
| 2018-09-14 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Record actions performed on ImageBitmapRenderingContext |
| https://bugs.webkit.org/show_bug.cgi?id=181341 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording.fromPayload): |
| (WI.Recording.prototype.createContext): |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction._prototypeForType): |
| (WI.RecordingAction.prototype.getImageParameters): |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName): |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.get navigationItems): |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.shown): |
| (WI.RecordingContentView.prototype.hidden): |
| (WI.RecordingContentView.prototype._generateContentFromSnapshot): Renamed. |
| (WI.RecordingContentView.prototype._updateImageGrid): |
| (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Deleted. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| |
| 2018-09-13 Jamal Nasser <jamaln@mail.com> |
| |
| Web Inspector: Dark Mode: bezier curve editor should be updated |
| https://bugs.webkit.org/show_bug.cgi?id=187657 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.bezier-editor > .bezier-preview-timing): |
| (.bezier-editor > .bezier-container .bezier-curve): |
| (.bezier-editor > .bezier-container .linear-curve): |
| (.bezier-editor > .bezier-preview): |
| (.bezier-editor > .bezier-preview > div): |
| (.bezier-editor > .bezier-container .control-handle): |
| (.bezier-editor > .bezier-container .control-line): |
| |
| 2018-09-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Timelines: clicking a row in Script > Events grid triggers Location popover when column is hidden |
| https://bugs.webkit.org/show_bug.cgi?id=189603 |
| <rdar://problem/44431403> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| TimelineDataGrid controls showing/hiding the call frame popover, with subclasses |
| overriding callFramePopoverAnchorElement to position it. This patch adds |
| another overridable base class method, shouldShowCallFramePopover, which subclasses |
| can use to block the popover when the Location column is hidden. |
| |
| * UserInterface/Views/DataGrid.js: |
| (WI.DataGrid.prototype.layout): |
| (WI.DataGrid.prototype._positionResizerElements): |
| (WI.DataGrid.prototype._isColumnVisible): Deleted. |
| |
| * UserInterface/Views/LayoutTimelineDataGrid.js: |
| (WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover): |
| (WI.LayoutTimelineDataGrid): |
| |
| * UserInterface/Views/ScriptTimelineDataGrid.js: |
| (WI.ScriptTimelineDataGrid.prototype.shouldShowCallFramePopover): |
| (WI.ScriptTimelineDataGrid): |
| |
| * UserInterface/Views/TimelineDataGrid.js: |
| (WI.TimelineDataGrid.prototype.shouldShowCallFramePopover): |
| (WI.TimelineDataGrid.prototype._dataGridSelectedNodeChanged): |
| |
| 2018-09-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Opening inspector with a selected element might immediately scroll that element off screen in the DOM Tree outline |
| https://bugs.webkit.org/show_bug.cgi?id=189569 |
| <rdar://problem/44397098> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView.prototype.layout): |
| Re-select the selected DOM node in the DOM Tree when the view resizes. |
| Typically this can happen if the sidebar opens/closes/resizes, in which |
| case we will want the selected DOM node to stay in view even if the DOM |
| tree starts wrapping earlier content. |
| |
| 2018-09-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: fix test case failures in js-isLikelyStackTrace.html |
| https://bugs.webkit.org/show_bug.cgi?id=180664 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/StackTrace.js: |
| (WI.StackTrace.isLikelyStackTrace): |
| In a quick benchmark 50% of the time was rebuilding the same complex regular |
| expression over and over again. Instead just build the regex once and reset |
| it before each use. |
| |
| 2018-09-12 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: imported recordings are unable to be viewed after navigation |
| https://bugs.webkit.org/show_bug.cgi?id=189208 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Move the "Imported Recordings" folder to the top level (instead of under "Overview") so that |
| it is selectable when there are no canvases but there is an imported recording. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype._removeCanvas): |
| Null out the `source` of each `WI.Recording` for the removed `WI.Canvas`. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| Add each `WI.Recording`for the removed `WI.Canvas` to the "Imported Recordings" folder. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.refresh): |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype._showError): |
| Drive-by: don't recreate the error preview element if it already exists. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.updateRepresentedObjects): Added. |
| (WI.CanvasSidebarPanel.prototype.shown): |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): Deleted. |
| |
| 2018-09-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Fix typo "vritualized" |
| https://bugs.webkit.org/show_bug.cgi?id=189511 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.registerScrollVirtualizer): |
| (WI.TreeOutline.prototype.updateVirtualizedElements): |
| |
| 2018-09-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Address some ESLint warnings |
| https://bugs.webkit.org/show_bug.cgi?id=188824 |
| |
| Reviewed by Matt Baker. |
| |
| * .eslintrc: |
| * UserInterface/Base/Platform.js: |
| * UserInterface/Controllers/AuditManager.js: |
| * UserInterface/Controllers/BasicBlockAnnotator.js: |
| * UserInterface/Controllers/CallFrameTreeController.js: |
| * UserInterface/Controllers/HARBuilder.js: |
| * UserInterface/Models/AuditReport.js: |
| * UserInterface/Models/AuditResult.js: |
| * UserInterface/Models/AuditTestCase.js: |
| * UserInterface/Models/AuditTestSuite.js: |
| * UserInterface/Models/Cookie.js: |
| * UserInterface/Models/SourceCodePosition.js: |
| * UserInterface/Test/FrontendTestHarness.js: |
| * UserInterface/Test/TestSuite.js: |
| * UserInterface/Views/CanvasContentView.js: |
| * UserInterface/Views/CollectionContentView.js: |
| * UserInterface/Views/ContentBrowser.js: |
| * UserInterface/Views/CookieStorageContentView.js: |
| * UserInterface/Views/DataGrid.js: |
| * UserInterface/Views/DatabaseTableContentView.js: |
| * UserInterface/Views/FindBanner.js: |
| * UserInterface/Views/JSONResourceContentView.js: |
| * UserInterface/Views/LogContentView.js: |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| * UserInterface/Views/SpreadsheetTextField.js: |
| * UserInterface/Workers/Formatter/FormatterUtilities.js: |
| |
| 2018-09-06 Andy Estes <aestes@apple.com> |
| |
| [Apple Pay] Rename the -apple-pay-button-type value "checkout" to "check-out" |
| https://bugs.webkit.org/show_bug.cgi?id=189366 |
| <rdar://problem/44193218> |
| |
| Reviewed by Sam Weinig. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-08-31 Jamal Nasser <xnasser@outlook.com> |
| |
| Added a CSS rule to DarkMode.css to fix color on sidebar toggle. |
| <https://webkit.org/b/189139> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle): |
| |
| 2018-08-29 David Kilzer <ddkilzer@apple.com> |
| |
| Remove empty directories from from svn.webkit.org repository |
| <https://webkit.org/b/189081> |
| |
| * WebInspectorUI.esproj: Removed. |
| |
| 2018-08-28 Devin Rousso <drousso@apple.com> |
| |
| console.log() shows (anonymous function) instead of the passed string when a certain format is used |
| https://bugs.webkit.org/show_bug.cgi?id=188946 |
| <rdar://problem/43756428> |
| |
| Reviewed by Brian Burg. |
| |
| Stack trace URLs are much more likely to follow the following format: |
| |
| <protocol>://<path>:<line>:<column> |
| |
| Modify the test regexp to always require that a protocol exists and to check that there are |
| no ":" inside the protocol or path. Additionally, stack traces usually have more than one |
| frame, so return false if there isn't more than one line. |
| |
| * UserInterface/Models/StackTrace.js: |
| (WI.StackTrace.isLikelyStackTrace): |
| |
| 2018-08-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: CanvasSidebarPanel is empty for imported recordings |
| https://bugs.webkit.org/show_bug.cgi?id=189061 |
| |
| Reviewed by Brian Burg. |
| |
| When recordings are imported, they don't have an associated `WI.Canvas`, meaning that the |
| `WI.Recording` is never added to the canvas' `WI.RecordingCollection`. Previously, the |
| canvas sidebar relied upon the `ItemAdded` event to update the recording `WI.ScopeBar`. |
| Since the imported recording isn't ever added to the collection, this is never fired. |
| |
| This patch moves the function call that updates the `WI.ScopeBar` to a more universal path, |
| ensuring that no matter how a `WI.Recording` is set for the sidebar, it will be shown. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.set recording): |
| (WI.CanvasSidebarPanel.prototype._recordingAdded): |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| |
| 2018-08-28 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Search bar is too narrow in some localizations |
| https://bugs.webkit.org/show_bug.cgi?id=189060 |
| <rdar://problem/43006369> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/Toolbar.css: |
| (.toolbar .search-bar): |
| |
| 2018-08-27 Keith Rollin <krollin@apple.com> |
| |
| Unreviewed build fix -- disable LTO for production builds |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-08-27 Andy Estes <aestes@apple.com> |
| |
| Teach Web Inspector how to complete keywords for -apple-pay-button-style and -apple-pay-button-type |
| https://bugs.webkit.org/show_bug.cgi?id=189001 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-08-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: when scrolling a virtualized TreeOutline, only update the DOM periodically |
| https://bugs.webkit.org/show_bug.cgi?id=188960 |
| |
| Reviewed by Brian Burg. |
| |
| After each `updateVirtualizedElements` call, remember the `WI.TreeElement` that is located |
| halfway within the visible list. When handling each "scroll", only regenerate the |
| `WI.TreeOutline` DOM if the user has scrolled `extraRows` distance. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline): |
| (WI.TreeOutline.prototype.registerScrollVirtualizer): |
| (WI.TreeOutline.prototype.updateVirtualizedElements): |
| (WI.TreeOutline.prototype._calculateVirtualizedValues): Added. |
| |
| 2018-08-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: provide autocompletion for event breakpoints |
| https://bugs.webkit.org/show_bug.cgi?id=188717 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/DOMTreeManager.js: |
| (WI.DOMTreeManager): |
| (WI.DOMTreeManager.prototype.getSupportedEventNames): Added. |
| |
| * UserInterface/Views/EventBreakpointPopover.js: |
| (WI.EventBreakpointPopover): |
| (WI.EventBreakpointPopover.prototype.show): |
| (WI.EventBreakpointPopover.prototype.dismiss): Added. |
| (WI.EventBreakpointPopover.prototype.completionSuggestionsClickedCompletion): Added. |
| (WI.EventBreakpointPopover.prototype._presentOverTargetElement): |
| (WI.EventBreakpointPopover.prototype._showSuggestionsView): Added. |
| |
| 2018-08-27 Keith Rollin <krollin@apple.com> |
| |
| Build system support for LTO |
| https://bugs.webkit.org/show_bug.cgi?id=187785 |
| <rdar://problem/42353132> |
| |
| Reviewed by Dan Bernstein. |
| |
| Update Base.xcconfig and DebugRelease.xcconfig to optionally enable |
| LTO. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2018-08-27 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: virtualized TreeOutline is empty when filtering |
| https://bugs.webkit.org/show_bug.cgi?id=188959 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.set hidden): |
| Only set `focusedTreeElement` if the `WI.TreeElement` is selected and not hidden. There is |
| no reason to focus a hidden or unselected `WI.TreeElement`. |
| |
| 2018-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Color picker: can't enter decimal numbers for opacity |
| https://bugs.webkit.org/show_bug.cgi?id=187026 |
| <rdar://problem/41446500> |
| |
| Reviewed by Brian Burg. |
| |
| After every "input" event, we update the `color` value of the `WI.ColorPicker` based on a |
| generated string using the values of the various <input>. The issue with this approach is |
| that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the |
| color wouldn't change and would instead be reset back to it's old value. This patch adds an |
| early return if the newly generated color has the same value as the current color, thereby |
| meaning that the `color` wouldn't change when changing from "0" to "0.". |
| |
| * UserInterface/Views/ColorPicker.js: |
| (WI.ColorPicker): |
| (WI.ColorPicker.createColorInput): |
| (WI.ColorPicker.prototype._handleColorInputInput): |
| |
| 2018-08-23 Simon Fraser <simon.fraser@apple.com> |
| |
| Add support for dumping GC heap snapshots, and a viewer |
| https://bugs.webkit.org/show_bug.cgi?id=186416 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Make a way to dump information about the GC heap that is useful for looking for leaked |
| or abandoned objects. This dump is obtained (on Apple platforms) via: |
| notifyutil -p com.apple.WebKit.dumpGCHeap |
| which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector. |
| |
| This leverages the heap snapshot used by Web Inspector, adding an alternate format for |
| the snapshot JSON that adds additional data about objects and why they are GC roots. |
| |
| The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(), |
| and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute, |
| CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument |
| that need to decorate the heap snapshot cell data with things like the document URL. |
| |
| GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it |
| to a file in /tmp. The file path is printed out to the system log. |
| |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js: |
| (HeapSnapshot): |
| |
| 2018-08-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: fix typos in some compositing reasons |
| https://bugs.webkit.org/show_bug.cgi?id=188905 |
| <rdar://problem/43624825> |
| |
| Reviewed by Simon Fraser. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/LayerTreeDetailsSidebarPanel.js: |
| (WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons): |
| (WI.LayerTreeDetailsSidebarPanel): |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView.prototype._updateReasonsList): |
| (WI.Layers3DContentView): |
| |
| 2018-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: support breakpoints for timers and animation-frame events |
| https://bugs.webkit.org/show_bug.cgi?id=188778 |
| |
| Reviewed by Brian Burg. |
| |
| Add a `type` to `WI.EventBreakpoint` that matches `DOMDebugger.EventBreakpointType`: |
| - `AnimationFrame` for `requestAnimationFrame` |
| - `Listener` for any named DOM Event |
| - `Timer` for `setTimeout` and `setInterval` |
| |
| Modified `WI.EventBreakpointPopover` to provide ways for selecting these other types, which |
| is then passed to `WI.DOMDebuggerManager`, which now calls through to the newly added |
| `DOMDebugger.removeEventBreakpoint` and `DOMDebugger.setEventBreakpoint` that sets |
| breakpoints for all event types. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Images/EventBreakpointAnimationFrame.svg: Added. |
| * UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg. |
| * UserInterface/Images/EventBreakpointTimer.svg: Added. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager.supportsEventBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added. |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added. |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): |
| (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted. |
| |
| * UserInterface/Controllers/DOMTreeManager.js: |
| (WI.DOMTreeManager.prototype.setBreakpointForEventListener): |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| |
| * UserInterface/Models/EventBreakpoint.js: |
| (WI.EventBreakpoint): |
| (WI.EventBreakpoint.fromPayload): |
| (WI.EventBreakpoint.prototype.get type): Added. |
| (WI.EventBreakpoint.prototype.get serializableInfo): |
| (WI.EventBreakpoint.prototype.saveIdentityToCookie): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype.willDismissPopover): |
| |
| * UserInterface/Views/EventBreakpointPopover.js: |
| (WI.EventBreakpointPopover): |
| (WI.EventBreakpointPopover.prototype.get breakpoint): Added. |
| (WI.EventBreakpointPopover.prototype.show): |
| (WI.EventBreakpointPopover.prototype.show.createOption): Added. |
| (WI.EventBreakpointPopover.prototype.dismiss): Added. |
| (WI.EventBreakpointPopover.prototype._presentOverTargetElement): |
| (WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added. |
| (WI.EventBreakpointPopover.prototype.get result): Deleted. |
| (WI.EventBreakpointPopover.prototype.get value): Deleted. |
| * UserInterface/Views/EventBreakpointPopover.css: |
| (.popover .event-breakpoint-content > .event-type): Added. |
| (.popover .event-breakpoint-content > input): Deleted. |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| * UserInterface/Views/EventBreakpointTreeElement.css: |
| (.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added. |
| (.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added. |
| (.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added. |
| (.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted. |
| |
| 2018-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: `console.inspect(sessionStorage)` first time does not show Session Storage content view if Storage tab was previously unvisited |
| https://bugs.webkit.org/show_bug.cgi?id=188801 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI.tabContentViewClassForRepresentedObject): |
| (WI._storageWasInspected): |
| Since the `WI.StorageSidebarPanel` is not created until the `WI.StorageTabContentView` is |
| created, the `WI.StorageManager.Event.DOMStorageObjectWasInspected` and |
| `WI.StorageManager.Event.DatabaseWasInspected` events do not reach the sidebar. We should |
| follow what `WI._domNodeWasInspected` does and additionally call `WI.showRepresentedObject` |
| on the inspected object. |
| |
| 2018-08-23 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=188819 |
| <rdar://problem/43579039> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/ResourceCollection.js: |
| (WI.ResourceCollection.prototype.objectIsRequiredType): |
| |
| 2018-08-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| JSContext Inspector: Scripts not showing up in Resources tab |
| https://bugs.webkit.org/show_bug.cgi?id=188814 |
| <rdar://problem/43576117> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype._addScript): |
| This path shouldn't apply to JSContext inspection which will |
| never have a pageTarget and but doesn't have a mainResource. |
| |
| 2018-08-22 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete |
| https://bugs.webkit.org/show_bug.cgi?id=188803 |
| <rdar://problem/43572838> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): |
| (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): |
| |
| 2018-08-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main. |
| |
| The script was removed in r235151. |
| |
| * UserInterface/Main.html: |
| |
| 2018-08-21 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove TreeOutlineDataGridSynchronizer |
| https://bugs.webkit.org/show_bug.cgi?id=188449 |
| <rdar://problem/43107980> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/HeapAllocationsTimelineView.js: |
| (WI.HeapAllocationsTimelineView.prototype.layout): |
| * UserInterface/Views/LayoutTimelineView.js: |
| (WI.LayoutTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/NetworkTimelineView.js: |
| (WI.NetworkTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/RenderingFrameTimelineView.js: |
| (WI.RenderingFrameTimelineView.prototype._processPendingRecords): |
| (WI.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement): Deleted. |
| * UserInterface/Views/ScriptDetailsTimelineView.js: |
| (WI.ScriptDetailsTimelineView.prototype._processPendingRecords): |
| * UserInterface/Views/TimelineDataGrid.js: |
| (WI.TimelineDataGrid): |
| (WI.TimelineDataGrid.prototype.reset): |
| (WI.TimelineDataGrid.prototype.shown): |
| (WI.TimelineDataGrid.prototype.addRowInSortOrder): |
| (WI.TimelineDataGrid.prototype._refreshDirtyDataGridNodes): |
| (WI.TimelineDataGrid.prototype._sort): |
| (WI.TimelineDataGrid.prototype.treeElementForDataGridNode): Deleted. |
| (WI.TimelineDataGrid.prototype.dataGridNodeForTreeElement): Deleted. |
| * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: Removed. |
| |
| 2018-08-21 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: ⌘G does not while find banner is focused |
| https://bugs.webkit.org/show_bug.cgi?id=188815 |
| <rdar://problem/43577158> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| Allow an <input> element to be the current focus element, which is what will |
| our global KeyboardShortcut handlers will interact with. Also make sure |
| that showing the find banner for the first time still focuses it. |
| |
| 2018-08-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r235095): duplicate actions existing in WI.CanvasSidebarPanel |
| https://bugs.webkit.org/show_bug.cgi?id=188808 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| Check that the `WI.RecordingAction` is not already represented in the `WI.TreeOutline` |
| before adding it. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): |
| Drive-by: vertically center the <progress> shown for `WI.RecordingFrame` during processing. |
| |
| 2018-08-21 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas: provide default icon for all actions |
| https://bugs.webkit.org/show_bug.cgi?id=188807 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/RecordingActionTreeElement.css: |
| (.item.action > .icon): |
| (.item.action.initial-state > .icon): Deleted. |
| |
| 2018-08-21 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Rulers.svg is missing |
| https://bugs.webkit.org/show_bug.cgi?id=188806 |
| <rdar://problem/43574273> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Images/Rulers.svg: Added. |
| |
| 2018-08-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: allow breakpoints to be set for specific event listeners |
| https://bugs.webkit.org/show_bug.cgi?id=183138 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Models/EventBreakpoint.js: |
| (WI.EventBreakpoint): |
| (WI.EventBreakpoint.fromPayload): Added. |
| (WI.EventBreakpoint.prototype.get eventListener): Added. |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| |
| * UserInterface/Controllers/DOMTreeManager.js: |
| (WI.DOMTreeManager): |
| (WI.DOMTreeManager.prototype.get eventBreakpoints): Added. |
| (WI.DOMTreeManager.prototype._setDocument): |
| (WI.DOMTreeManager.prototype.setEventListenerDisabled): |
| (WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added. |
| (WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added. |
| (WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added. |
| |
| * UserInterface/Controllers/EventBreakpointTreeController.js: |
| (WI.EventBreakpointTreeController): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| |
| * UserInterface/Views/EventListenerSectionGroup.js: |
| (WI.EventListenerSectionGroup): |
| (WI.EventListenerSectionGroup.prototype._createDisabledToggleRow): |
| (WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added. |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: |
| (WI.EventBreakpointTreeElement): |
| (WI.EventBreakpointTreeElement.prototype.ondelete): |
| (WI.EventBreakpointTreeElement.prototype.populateContextMenu): |
| (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint): |
| |
| 2018-08-20 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: Canvas tab: allow recording processing to be stopped midway |
| https://bugs.webkit.org/show_bug.cgi?id=185152 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Previously, `WI.Recording` used a `WI.YieldableTask` to process every action in such a way |
| as to not block the UI. The downside to this approach was that it used a message view to |
| indicate the progress of this process, and prevented the user from viewing the `WI.Recording` |
| until that process was completed. |
| |
| This patch changes `WI.Recording` to instead use `async/await` and fire events whenever a |
| `WI.RecordingAction` (and `WI.RecordingFrame`) finished processing, allowing it to be added |
| to the recording `WI.TreeOutline` and selected by the user. Additionally, a pause/resume |
| button is added to the `WI.CanvasSidebarPanel` so the user has greater control over what |
| how much of the `WI.Recording` they want to process. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Base/Utilities.js: |
| (Promise.delay) |
| Utility function for promisifying `setTimeout`. |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording): |
| (WI.Recording.prototype.get processing): Added. |
| (WI.Recording.prototype.get ready): Added. |
| (WI.Recording.prototype.startProcessing): Added. |
| (WI.Recording.prototype.stopProcessing): Added. |
| (WI.Recording.prototype.async._process): Added. |
| (WI.Recording.prototype.process): Deleted. |
| (WI.Recording.prototype.async.yieldableTaskWillProcessItem): Deleted. |
| (WI.Recording.prototype.async.yieldableTaskDidFinish): Deleted. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction): |
| (WI.RecordingAction.prototype.get ready): Added. |
| (WI.RecordingAction.prototype.async.swizzle): |
| (WI.RecordingAction.prototype.apply): |
| |
| * UserInterface/Models/RecordingInitialStateAction.js: |
| (WI.RecordingInitialStateAction): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype.set recording): |
| (WI.CanvasSidebarPanel.prototype.set action): |
| (WI.CanvasSidebarPanel.prototype._recordingAdded): |
| (WI.CanvasSidebarPanel.prototype._recordingRemoved): |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged.createPauseButton): Added. |
| (WI.CanvasSidebarPanel.prototype._recordingChanged.createResumeButton): Added. |
| (WI.CanvasSidebarPanel.prototype._createRecordingFrameTreeElement): Added. |
| (WI.CanvasSidebarPanel.prototype._createRecordingActionTreeElement): Added. |
| (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): Added. |
| (WI.CanvasSidebarPanel.prototype._handleRecordingStartProcessingFrame): Added. |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle::before): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options > .indeterminate-progress-spinner): Added. |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): Deleted. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.initialLayout): |
| (WI.RecordingContentView.prototype._updateCanvasPath): |
| (WI.RecordingContentView.prototype._handleRecordingProcessedAction): Added. |
| (WI.RecordingContentView.prototype._updateProcessProgress): Deleted. |
| (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Deleted. |
| (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Deleted. |
| * UserInterface/Views/RecordingContentView.css: |
| (.content-view:not(.tab).recording > header > .slider-container > .slider-value): Added. |
| |
| * UserInterface/Views/FolderTreeElement.js: |
| (WI.FolderTreeElement): |
| |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WI.GeneralTreeElement.prototype.get statusElement): Added. |
| (WI.GeneralTreeElement.prototype._updateTitleElements): |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.CanvasContentView.prototype._handleViewShaderButtonClicked): |
| (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked): |
| Drive-by: `WI.Collection` doesn't have a `values()` accessor for the underlying `Set`. |
| |
| * UserInterface/Views/RecordingNavigationSidebarPanel.css: Removed. |
| * UserInterface/Views/RecordingNavigationSidebarPanel.js: Removed. |
| These files are no longer used since they were "merged" into `WI.CanvasSidebarPanel`. |
| |
| 2018-08-20 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas tab: create icons for recordings/shaders in the preview tile |
| https://bugs.webkit.org/show_bug.cgi?id=183650 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype.attached): |
| (WI.CanvasContentView.prototype._recordingStopped): |
| (WI.CanvasContentView.prototype._shaderProgramAdded): |
| (WI.CanvasContentView.prototype._shaderProgramRemoved): |
| (WI.CanvasContentView.prototype._updateViewRelatedItems): |
| (WI.CanvasContentView.prototype._handleViewShaderButtonClicked): |
| (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked): |
| (WI.CanvasContentView.prototype._addRecording): Deleted. |
| (WI.CanvasContentView.prototype._handleRecordingSelectElementChange): Deleted. |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items): |
| (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > :matches(.view-shader, .view-recording)): |
| (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > img + img): |
| (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-shader): |
| (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-recording): |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus): Deleted. |
| Create two image buttons in the bottom left corner of each canvas tile that appear when the |
| canvas has associated shaders and/or recordings. Clicking each image button will function |
| similar to path components, in that if there is only one shader/recording, it is immediately |
| selected, whereas if there are multiple a dropdown is shown. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| Drive-by: ensure that the selected recording action is properly updated when first loading a |
| recording and when scrubbing through one. |
| |
| 2018-08-16 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: support breakpoints for arbitrary event names |
| https://bugs.webkit.org/show_bug.cgi?id=183118 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands, |
| specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if |
| any DOM event is fired that matches any previously registered breakpoints. |
| |
| Event breakpoints are distinguished by name, and they currently apply globally, meaning |
| that only one breakpoint per event name can be registered. |
| |
| Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in |
| the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right |
| now all it contains is a basic text input for the event name. Similarly, a new TreeElement |
| subclass, EventBreakpointTreeElement, is used when showing the list of event listener |
| breakpoints, but all it shows now is the event name. |
| |
| The majority of the logic in this patch was derived from XHR breakpoints. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Main.html: |
| * UserInterface/Test.html: |
| * UserInterface/Images/EventBreakpoint.svg: Added. |
| |
| * UserInterface/Models/EventBreakpoint.js: Added. |
| (WI.EventBreakpoint): |
| (WI.EventBreakpoint.prototype.get eventName): |
| (WI.EventBreakpoint.prototype.get disabled): |
| (WI.EventBreakpoint.prototype.set disabled): |
| (WI.EventBreakpoint.prototype.get serializableInfo): |
| (WI.EventBreakpoint.prototype.saveIdentityToCookie): |
| |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WI.DOMDebuggerManager): |
| (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added. |
| (WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints): |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added. |
| (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added. |
| (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added. |
| (WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added. |
| |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._pauseReasonFromPayload): |
| |
| * UserInterface/Controllers/EventBreakpointTreeController.js: Added. |
| (WI.EventBreakpointTreeController): |
| (WI.EventBreakpointTreeController.prototype.revealAndSelect): |
| (WI.EventBreakpointTreeController.prototype._eventBreakpointAdded): |
| (WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved): |
| (WI.EventBreakpointTreeController.prototype._addTreeElement): |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel): |
| (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection): |
| (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added. |
| (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added. |
| (WI.DebuggerSidebarPanel.prototype.willDismissPopover): |
| |
| * UserInterface/Views/EventBreakpointTreeElement.js: Added. |
| (WI.EventBreakpointTreeElement): |
| (WI.EventBreakpointTreeElement.prototype.onattach): |
| (WI.EventBreakpointTreeElement.prototype.ondetach): |
| (WI.EventBreakpointTreeElement.prototype.ondelete): |
| (WI.EventBreakpointTreeElement.prototype.onenter): |
| (WI.EventBreakpointTreeElement.prototype.onspace): |
| (WI.EventBreakpointTreeElement.prototype.populateContextMenu): |
| (WI.EventBreakpointTreeElement.prototype._statusImageElementClicked): |
| (WI.EventBreakpointTreeElement.prototype._statusImageElementFocused): |
| (WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown): |
| (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint): |
| (WI.EventBreakpointTreeElement.prototype._updateStatus): |
| * UserInterface/Views/EventBreakpointTreeElement.css: Added. |
| (.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon): |
| |
| * UserInterface/Views/EventBreakpointPopover.js: Added. |
| (WI.EventBreakpointPopover): |
| (WI.EventBreakpointPopover.prototype.get result): |
| (WI.EventBreakpointPopover.prototype.get value): |
| (WI.EventBreakpointPopover.prototype.show): |
| (WI.EventBreakpointPopover.prototype._presentOverTargetElement): |
| * UserInterface/Views/EventBreakpointPopover.css: Added. |
| (.popover .event-listener-breakpoint-content): |
| (.popover .event-listener-breakpoint-content > input): |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject): |
| |
| 2018-08-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Show Initiator information in Network Table |
| https://bugs.webkit.org/show_bug.cgi?id=188590 |
| <rdar://problem/43305488> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/NetworkResourceDetailView.js: |
| (WI.NetworkResourceDetailView): |
| (WI.NetworkResourceDetailView.prototype.shown): |
| (WI.NetworkResourceDetailView.prototype.willShowWithCookie): |
| (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): |
| When a ResourceDetailView gets shown, it may also want to show its initial content view |
| with a cookie as the cookie may contain position highlight information. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView): |
| (WI.NetworkTableContentView.prototype._showResourceDetailView): |
| (WI.NetworkTableContentView.prototype.showRepresentedObject): |
| When showing a represented object, pass the cookie information on to the detail |
| view's so that it may include the cookie when showing the final content view. |
| |
| (WI.NetworkTableContentView.prototype.tablePopulateCell): |
| (WI.NetworkTableContentView.prototype._populateInitiatorCell): |
| (WI.NetworkTableContentView.prototype.initialLayout): |
| New initiator column contains a source code link to the call site. |
| |
| (WI.NetworkTableContentView.prototype._generateSortComparator): |
| (WI.NetworkTableContentView.prototype._entryForResource): |
| Entry data for the initiator is a display string that can be sorted easily. |
| |
| 2018-08-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| LayoutTest inspector/worker/debugger-pause.html sometimes times out |
| https://bugs.webkit.org/show_bug.cgi?id=188580 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/Target.js: |
| (WI.Target.prototype.get mainResource): |
| (WI.Target.prototype.set mainResource): |
| Dispatch an event when the Main Resource is set. |
| |
| 2018-08-15 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist] Add button to TextFieldInputs with a datalist |
| https://bugs.webkit.org/show_bug.cgi?id=187741 |
| |
| Reviewed by Tim Horton. |
| |
| Add keyword completion for 'list-button'. |
| |
| * UserInterface/External/CodeMirror/css.js: |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-08-15 Devin Rousso <drousso@apple.com> |
| |
| Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes |
| https://bugs.webkit.org/show_bug.cgi?id=188594 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/ProbeDetailsSidebarPanel.js: |
| (WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets): |
| (WI.ProbeDetailsSidebarPanel.prototype.initialLayout): |
| Add checks to ensure that DOM elements for each probe section exist before trying to |
| add/remove them from the sidebar. This can happen if probes are inspected before the sidebar |
| is shown for the first time. |
| |
| * UserInterface/Views/ProbeSetDataGrid.js: |
| (WI.ProbeSetDataGrid): |
| (WI.ProbeSetDataGrid.columnIdentifierForProbe): Added. |
| (WI.ProbeSetDataGrid.prototype._setupProbe): |
| (WI.ProbeSetDataGrid.prototype._teardownProbe): |
| (WI.ProbeSetDataGrid.prototype._probeExpressionChanged): |
| * UserInterface/Views/ProbeSetDataGridNode.js: |
| (WI.ProbeSetDataGridNode.prototype.set frame): |
| Provide better column identifiers for each probe's `WI.DataGrid`. It's possible for the |
| numeric probe ID value to be stringified when passing it into the constructor of |
| `WI.DataGrid`, which will not match the original numeric value on later retrieval. |
| |
| 2018-08-14 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should not center rows when scrolling them into view |
| https://bugs.webkit.org/show_bug.cgi?id=188593 |
| <rdar://problem/43311660> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype._handleKeyDown): |
| |
| 2018-08-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Table should handle row selection instead of the table delegate |
| https://bugs.webkit.org/show_bug.cgi?id=188534 |
| <rdar://problem/43253335> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Row selection should be implemented by Table, rather than its delegate. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.tableShouldSelectRow): |
| (WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted. |
| Prevent selection unless the clicked cell belongs to the name column. |
| |
| * UserInterface/Views/ResourceCookiesContentView.js: |
| (WI.ResourceCookiesContentView.prototype.tableShouldSelectRow): |
| Always prevent selection. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table): |
| (WI.Table.prototype._handleMouseDown): |
| |
| 2018-08-12 Aditya Keerthi <akeerthi@apple.com> |
| |
| [macOS] Color wells should appear pressed when presenting a color picker |
| https://bugs.webkit.org/show_bug.cgi?id=188477 |
| |
| Reviewed by Tim Horton. |
| |
| Add keyword completion for 'color-well'. |
| |
| * UserInterface/External/CodeMirror/css.js: |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-08-09 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light |
| https://bugs.webkit.org/show_bug.cgi?id=188126 |
| <rdar://problem/42674963> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added. |
| (.source-code.text-editor > .CodeMirror .issue-widget.error,): Added. |
| |
| 2018-08-07 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add another Protocol Version (iOS 12) |
| https://bugs.webkit.org/show_bug.cgi?id=188359 |
| <rdar://problem/42981364> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: Added. |
| * Versions/Inspector-iOS-12.0.json: Added. |
| |
| 2018-08-06 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Global search sometimes returns duplicate results for a resource |
| https://bugs.webkit.org/show_bug.cgi?id=188270 |
| <rdar://problem/42867498> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback): |
| Avoid duplicate search results in the frontend. We should also fix the backend |
| but a frontend fix will also be desired for backends that have the issue. |
| |
| 2018-08-03 Alex Christensen <achristensen@webkit.org> |
| |
| Fix spelling of "overridden" |
| https://bugs.webkit.org/show_bug.cgi?id=188315 |
| |
| Reviewed by Darin Adler. |
| |
| * UserInterface/Views/ContentBrowserTabContentView.js: |
| (WI.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject): |
| * UserInterface/Views/GeneralTreeElement.js: |
| (WI.GeneralTreeElement.prototype.ondetach): |
| * UserInterface/Views/NavigationBar.js: |
| (WI.NavigationBar.prototype.get sizesToFit): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.shouldFilterPopulate): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.canBeFormatted): |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype.onpopulate): |
| |
| 2018-08-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light |
| https://bugs.webkit.org/show_bug.cgi?id=188119 |
| <rdar://problem/42670811> |
| |
| Reviewed by Matt Baker. |
| |
| Make the background of the thread indicator widget darker. |
| |
| Reduce the number of HTML elements and simplify CSS by removing the HTML element that drew an arrow and using clip-path on inline widgets instead. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.text-editor > .CodeMirror .execution-line): |
| (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),): |
| * UserInterface/Views/SourceCodeTextEditor.css: |
| (.source-code.text-editor .CodeMirror-linewidget): |
| (.source-code.text-editor > .CodeMirror .line-indicator-widget.inline): |
| (@media (prefers-dark-interface)): |
| (.source-code.text-editor > .CodeMirror .thread-widget.inline): |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget): |
| (WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues): |
| * UserInterface/Views/TextEditor.css: |
| (@media (prefers-dark-interface)): |
| (.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2018-08-01 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: disabled breakpoints banner is too light |
| https://bugs.webkit.org/show_bug.cgi?id=188120 |
| <rdar://problem/42671348> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.navigation.debugger .warning-banner): |
| |
| 2018-07-31 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Include a full URL tooltip when hovering the name in the Network Tab |
| https://bugs.webkit.org/show_bug.cgi?id=188199 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateNameCell): |
| Give a tooltip to the entire cell since the entire cell has interactivity. |
| |
| 2018-07-30 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Search sidebar panel text field has a white background |
| https://bugs.webkit.org/show_bug.cgi?id=188128 |
| <rdar://problem/42678270> |
| |
| Reviewed by Matt Baker. |
| |
| Make the search bar in Search tab match the style of the filter bar. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (:matches(.search-bar, .filter-bar) > input[type="search"],): |
| (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder): |
| (:matches(.search-bar, .filter-bar) > input[type="search"]:focus): |
| (.filter-bar > input[type="search"]): Deleted. |
| (.filter-bar > input[type="search"]::placeholder): Deleted. |
| (.filter-bar > input[type="search"]:focus): Deleted. |
| |
| 2018-07-26 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r234281. |
| |
| Broke internal builds. |
| |
| Reverted changeset: |
| |
| "[Datalist] Add button to TextFieldInputs with a datalist" |
| https://bugs.webkit.org/show_bug.cgi?id=187741 |
| https://trac.webkit.org/changeset/234281 |
| |
| 2018-07-26 Aditya Keerthi <akeerthi@apple.com> |
| |
| [Datalist] Add button to TextFieldInputs with a datalist |
| https://bugs.webkit.org/show_bug.cgi?id=187741 |
| |
| Reviewed by Tim Horton. |
| |
| Add keyword completion for 'list-button'. |
| |
| * UserInterface/External/CodeMirror/css.js: |
| * UserInterface/Models/CSSKeywordCompletions.js: |
| |
| 2018-07-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Breakpoint editor in JS debugger has inconsistent background |
| https://bugs.webkit.org/show_bug.cgi?id=188026 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.edit-breakpoint-popover-condition): |
| (.breakpoint-action-eval-editor): |
| |
| 2018-07-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: remove odd-looking top border |
| https://bugs.webkit.org/show_bug.cgi?id=187885 |
| |
| Reviewed by Matt Baker. |
| |
| This border doesn't exist in the light mode, and it shouldn't be in the dark mode either. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (body .toolbar): |
| |
| 2018-07-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Layers tab background should be dark |
| https://bugs.webkit.org/show_bug.cgi?id=187660 |
| <rdar://problem/42179616> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView.prototype.initialLayout): |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2018-07-19 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Web Inspector: Layers visualization shouldn't select on mousedown |
| https://bugs.webkit.org/show_bug.cgi?id=187488 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView): |
| (WI.Layers3DContentView.prototype.initialLayout): |
| (WI.Layers3DContentView.prototype._canvasMouseDown): |
| (WI.Layers3DContentView.prototype._canvasMouseUp): |
| Don't update selection on mousedown, update on mouseup! |
| Specifically, only update when mousedown & mouseup targets are the same and mousemove hasn't been triggered. |
| |
| 2018-07-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: poor contrast for Search Tab's "the page's content has changed" message |
| https://bugs.webkit.org/show_bug.cgi?id=187792 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (:root): |
| Make the background color slightly more yellow and less red. This slightly dicreases the contrast |
| but makes the text look less like an error. |
| |
| * UserInterface/Views/SearchSidebarPanel.css: |
| (@media (prefers-dark-interface)): |
| (.sidebar > .panel.navigation.search.changed > .banner): |
| |
| 2018-07-18 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSeparator option |
| https://bugs.webkit.org/show_bug.cgi?id=187772 |
| <rdar://problem/42331640> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CodeMirrorEditor.js: |
| (WI.CodeMirrorEditor.create): |
| (WI.CodeMirrorEditor): |
| CodeMirror should be left to auto-detect line separators. By default |
| it detects \n, \r\n, and \r. By specifying a regular expression we |
| merely cause problems when CodeMirror uses the supplied lineSeparator |
| when joining its array of lines together. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.set string.update): |
| (WI.TextEditor.prototype.set string): |
| This assertion was only true when we forced "\n" line endings everywhere. |
| It no longer holds for source text with "\r\n" (Windows-style) line endings. |
| |
| 2018-07-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Fix execution highlighting after r233820 |
| https://bugs.webkit.org/show_bug.cgi?id=187703 |
| <rdar://problem/42246167> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange): |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.currentPositionToOriginalPosition): |
| (WI.TextEditor.prototype._updateExecutionRangeHighlight): |
| |
| 2018-07-16 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Audit Tab should have an Audit Manager |
| https://bugs.webkit.org/show_bug.cgi?id=184071 |
| <rdar://problem/38946364> |
| |
| Reviewed by Brian Burg. |
| |
| This implements the AuditManager for the audit feature. This patch revolves |
| around building out an AuditManager that facilitates an audit. The AuditManager |
| is responsible for managing and storing AuditReports and AuditTestSuites. It is |
| also tasked to decide how to run a test -- whether as a test case or as a test |
| suite. This patch also includes 4 models with which the AuditManager works to |
| perform an audit and to generate a report. These models include AuditTestCase, |
| which as a collection is stored inside an AuditTestSuite; and AuditResult, |
| which, as a collection is stored inside an AuditReport. |
| |
| * UserInterface/Controllers/AuditManager.js: Added. |
| (WI.AuditManager): |
| (WI.AuditManager.prototype.get testSuites): |
| (WI.AuditManager.prototype.get reports): |
| (WI.AuditManager.prototype.async.runAuditTestByRepresentedObject): |
| (WI.AuditManager.prototype.reportForId): |
| (WI.AuditManager.prototype.removeAllReports): |
| (WI.AuditManager.prototype.async._runTestCase): |
| * UserInterface/Main.html: |
| * UserInterface/Models/AuditReport.js: Added. |
| (WI.AuditReport): |
| (WI.AuditReport.prototype.get representedTestCases): |
| (WI.AuditReport.prototype.get representedTestSuite): |
| (WI.AuditReport.prototype.get resultsData): |
| (WI.AuditReport.prototype.get isWritable): |
| (WI.AuditReport.prototype.get failedCount): |
| (WI.AuditReport.prototype.addResult): |
| (WI.AuditReport.prototype.close): |
| * UserInterface/Models/AuditResult.js: Added. |
| (WI.AuditResult): |
| (WI.AuditResult.prototype.get testResult): |
| (WI.AuditResult.prototype.get name): |
| (WI.AuditResult.prototype.get logLevel): |
| (WI.AuditResult.prototype.get failed): |
| * UserInterface/Models/AuditTestCase.js: Added. |
| (WI.AuditTestCase.prototype.get id): |
| (WI.AuditTestCase.prototype.get name): |
| (WI.AuditTestCase.prototype.get suite): |
| (WI.AuditTestCase.prototype.get test): |
| (WI.AuditTestCase.prototype.get setup): |
| (WI.AuditTestCase.prototype.get tearDown): |
| (WI.AuditTestCase.prototype.get errorDetails): |
| (WI.AuditTestCase): |
| * UserInterface/Models/AuditTestSuite.js: Added. |
| (WI.AuditTestSuite): |
| (WI.AuditTestSuite.testCaseDescriptors): |
| (WI.AuditTestSuite.prototype.get id): |
| (WI.AuditTestSuite.prototype.get name): |
| (WI.AuditTestSuite.prototype.get testCases): |
| (WI.AuditTestSuite.prototype._buildTestCasesFromDescriptors): |
| * UserInterface/Test.html: |
| |
| 2018-07-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Console filter field buttons should be darker |
| https://bugs.webkit.org/show_bug.cgi?id=187626 |
| <rdar://problem/42142744> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/FindBanner.css: |
| (@media (prefers-dark-interface)): |
| (.find-banner > button.segmented): |
| (.find-banner > button.segmented > .glyph): |
| |
| 2018-07-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: selected item background color is too light |
| https://bugs.webkit.org/show_bug.cgi?id=187691 |
| <rdar://problem/42225308> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (:root): |
| (.tree-outline.dom li.elements-drag-over .selection-area): |
| (.tree-outline.dom:focus li.selected .selection-area): |
| |
| 2018-07-14 Kocsen Chung <kocsen_chung@apple.com> |
| |
| Ensure WebKit stack is ad-hoc signed |
| https://bugs.webkit.org/show_bug.cgi?id=187667 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-07-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r195723): Improve support for resources with '\r' and '\r\n' line endings |
| https://bugs.webkit.org/show_bug.cgi?id=186453 |
| <rdar://problem/39689180> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Now that the frontend no longer uses offsets from the original source |
| file to calculate positions within CodeMirror, it is possible to support |
| resources with '\r' and '\r\n' line endings in the editor. |
| |
| * UserInterface/Views/CodeMirrorEditor.js: |
| (WI.CodeMirrorEditor.create): |
| (WI.CodeMirrorEditor): |
| |
| 2018-07-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Basic blocks highlighting should use line/column locations instead of offsets |
| https://bugs.webkit.org/show_bug.cgi?id=187613 |
| <rdar://problem/42131808> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/BasicBlockAnnotator.js: |
| Basic blocks sent from the backend include offsets into the original |
| file, rather than line/column locations. In order to translate to positions |
| within CodeMirror, we need to calculate the original line and column |
| for each block. |
| |
| (WI.BasicBlockAnnotator.prototype.insertAnnotations): |
| (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions.offsetToPosition): |
| (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions): |
| (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.): |
| (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges): |
| (WI.BasicBlockAnnotator.prototype._highlightTextForBasicBlock): |
| |
| * UserInterface/Models/SourceCodePosition.js: |
| (WI.SourceCodePosition.prototype.offsetColumn): |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.getTextInRange): |
| (WI.TextEditor.prototype.addStyleToTextRange): |
| Better encapsulation for CodeMirror positions. |
| |
| * UserInterface/Workers/Formatter/FormatterUtilities.js: |
| (get if): |
| Update String.prototype.lineEndings to support additional line separators. |
| |
| 2018-07-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Execution highlighting in the frontend should be line/column-based |
| https://bugs.webkit.org/show_bug.cgi?id=187532 |
| <rdar://problem/42035580> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Source code offsets from Esprima should not be used to calculate ranges |
| in CodeMirror for expression highlighting. |
| |
| This also fixes a long standing bug when adjusting for the starting |
| position of an inline script. Previously the start offset from the script |
| TextRange was used for this purpose, but the value is often incorrect (see |
| https://bugs.webkit.org/show_bug.cgi?id=187532#c5). By using the starting |
| line/column instead, we avoid the problem. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WI.ScriptSyntaxTree.prototype.containersOfPosition): |
| (WI.ScriptSyntaxTree.prototype.containersOfOffset): Deleted. |
| |
| * UserInterface/Models/SourceCodePosition.js: |
| (WI.SourceCodePosition.prototype.offsetColumn): |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.toInlineScriptPosition): |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.fromInlineScriptPosition): |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange): |
| (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.convertRangeOffsetsToSourceCodeOffsets): Deleted. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype._updateExecutionRangeHighlight): |
| |
| 2018-07-13 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: SourceCodePosition.js missing from Test.html |
| https://bugs.webkit.org/show_bug.cgi?id=187644 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Test.html: |
| |
| 2018-07-12 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Type token positioning should use line/column locations from Esprima instead of offsets |
| https://bugs.webkit.org/show_bug.cgi?id=187612 |
| <rdar://problem/42131910> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Controllers/TypeTokenAnnotator.js: |
| (WI.TypeTokenAnnotator.prototype.insertAnnotations): |
| (WI.TypeTokenAnnotator.prototype._insertTypeToken): |
| (WI.TypeTokenAnnotator.prototype._insertToken): |
| Use line/column locations, instead of offsets, from the AST when calculating |
| token positions for CodeMirror. Once in CodeMirror's string space, we |
| can safely convert to/from offsets. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| Retrieve line/column locations for AST nodes, in addition to offsets. |
| Offsets into the original file are still needed for getting type information |
| from the profiler in the backend. |
| |
| (WI.ScriptSyntaxTree): |
| (WI.ScriptSyntaxTree.prototype.filterByRange): |
| Filter by positions, which can be safely used from CodeMirror, instead of offsets. |
| |
| (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree): |
| (WI.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange): Deleted. |
| |
| * UserInterface/Models/SourceCodePosition.js: |
| Add convenience methods for comparing line/column positions, and for |
| converting to the format expected by CodeMirror. SourceCodePosition could |
| be made to interoperate with CodeMirror by exposing properties `line` |
| and `ch`, but making the conversion explicit improves code readability. |
| |
| (WI.SourceCodePosition.prototype.equals): |
| (WI.SourceCodePosition.prototype.isBefore): |
| (WI.SourceCodePosition.prototype.isAfter): |
| (WI.SourceCodePosition.prototype.isWithin): |
| (WI.SourceCodePosition.prototype.toCodeMirror): |
| (WI.SourceCodePosition): |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.visibleRangePositions): |
| (WI.TextEditor.prototype.originalPositionToCurrentPosition): |
| (WI.TextEditor.prototype.currentOffsetToCurrentPosition): |
| (WI.TextEditor.prototype.currentPositionToCurrentOffset): |
| (WI.TextEditor.prototype.setInlineWidget): |
| |
| 2018-07-10 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| REGRESSION(r229932) Use of uninitialized value in subroutine entry at copy-user-interface-resources.pl |
| https://bugs.webkit.org/show_bug.cgi?id=187511 |
| |
| Reviewed by Brian Burg. |
| |
| copy-user-interface-resources.pl output warning messages unless |
| BUILT_PRODUCTS_DIR and BUILT_PRODUCTS_DIR env vars are defined. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| (webInspectorUIAdditionsDir): Added. Return UNDEF if |
| BUILT_PRODUCTS_DIR and SDKROOT env vars aren't defined. |
| (combineOrStripResourcesForWebKitAdditions): Check |
| $webInspectorUIAdditionsDir is defined. |
| |
| 2018-07-10 Ross Kirsling <rkirsling@gmail.com> |
| |
| Web Inspector: Layers inspector should allow control-dragging to pan the 3D render |
| https://bugs.webkit.org/show_bug.cgi?id=185109 |
| |
| Reviewed by Matt Baker. |
| |
| Addressed in the three.js repo itself (https://github.com/mrdoob/three.js/pull/13972), |
| so this patch simply updates three.js and its OrbitControls module. |
| |
| * UserInterface/External/three.js/LICENSE: |
| * UserInterface/External/three.js/three.js: |
| Update to r94. |
| |
| * UserInterface/External/three.js/OrbitControls.js: |
| Update to latest. |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView.prototype.initialLayout): |
| (WI.Layers3DContentView.prototype._restrictPan): |
| Adapt to recent changes in three.js. |
| |
| 2018-07-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove unused NavigationSidebarPanel.treeElementAddedOrChanged |
| https://bugs.webkit.org/show_bug.cgi?id=187508 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged): |
| (WI.NavigationSidebarPanel.prototype.treeElementAddedOrChanged): Deleted. |
| |
| 2018-07-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r217505): Debugger content view doesn't update when left sidebar is collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=187482 |
| <rdar://problem/41989190> |
| |
| Reviewed by Brian Burg. |
| |
| Subclasses of NavigationSidebarPanel must process tree selection changes |
| even when collapsed. Sidebar panels perform critical controller tasks |
| for their tabs, such as updating the view when pausing in the debugger, |
| and when the hierarchical path component selection changes. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/ResourceSidebarPanel.js: |
| (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/SearchSidebarPanel.js: |
| (WI.SearchSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/SourcesSidebarPanel.js: |
| (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange): |
| * UserInterface/Views/StorageSidebarPanel.js: |
| (WI.StorageSidebarPanel._treeSelectionDidChange): |
| |
| 2018-07-09 Brian Burg <bburg@apple.com> |
| |
| REGRESSION: Web Inspector no longer pauses in internal injected scripts like WDFindNodes.js |
| https://bugs.webkit.org/show_bug.cgi?id=187350 |
| <rdar://problem/41728249> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Setting.js: Add a new setting to allow pausing in internal scripts. |
| * UserInterface/Controllers/DebuggerManager.js: Listen to the setting change and toggle |
| the backend setting accordingly. The default is to not break into internal scripts. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createDebugSettingsView): |
| Expose the new setting in the Debug settings panel. |
| |
| 2018-07-06 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: resource search field has white text on white background |
| https://bugs.webkit.org/show_bug.cgi?id=187423 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Match the colors of sidebar filter fields. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.find-banner > input[type="search"]): |
| |
| 2018-07-04 Tim Horton <timothy_horton@apple.com> |
| |
| Introduce PLATFORM(IOSMAC) |
| https://bugs.webkit.org/show_bug.cgi?id=187315 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-06-28 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: REGRESSION (r213000): copy from Search results content view broken |
| https://bugs.webkit.org/show_bug.cgi?id=187020 |
| <rdar://problem/40928766> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Since WI._copy listens for a copy event from the document, it is called |
| after CodeMirror handles the event and sets clipboard data. If WI._copy |
| finds a custom copy handler to call, that handler can determine whether |
| to overwrite the current clipboard data, or leave it alone. |
| |
| SearchTabContentView's handleCopyEvent method should return early if the |
| content tree outline doesn't have the focus. This prevents the selection |
| in the TextEditor from being overwritten, without any special knowledge of |
| the content browser's current view. |
| |
| * UserInterface/Views/SearchTabContentView.js: |
| (WI.SearchTabContentView.prototype.handleCopyEvent): |
| |
| 2018-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Box Model section should have dark background |
| https://bugs.webkit.org/show_bug.cgi?id=186976 |
| |
| Reviewed by Brian Burg. |
| |
| Replace all instances of black text on white background with the default text and background colors. |
| |
| * UserInterface/Views/BoxModelDetailsSectionRow.css: |
| (@media (prefers-dark-interface)): |
| (.details-section .row.box-model): |
| (.details-section .row.box-model .label): |
| (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)): |
| (.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content),): |
| (.details-section .row.box-model .margin): |
| (.details-section .row.box-model .border): |
| |
| 2018-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: color outline is too dark |
| https://bugs.webkit.org/show_bug.cgi?id=186975 |
| |
| Reviewed by Brian Burg. |
| |
| Make the outline lighter than the background. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.hover-menu > svg > :matches(path, rect)): |
| |
| 2018-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Media query names are unreadable |
| https://bugs.webkit.org/show_bug.cgi?id=186974 |
| |
| Reviewed by Brian Burg. |
| |
| Change media query names from dark blue to light blue. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket): |
| (.cm-s-default .cm-attribute): |
| |
| 2018-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Network headers colors are too dim |
| https://bugs.webkit.org/show_bug.cgi?id=186985 |
| |
| Reviewed by Brian Burg. |
| |
| Increasing the luminance of network header colors by increasing lightness and brightness. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (:root): |
| |
| 2018-06-25 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Dark Mode: Font guideline colors are too bright |
| https://bugs.webkit.org/show_bug.cgi?id=186986 |
| |
| Reviewed by Brian Burg. |
| |
| Make the guidelines less distractive from the font glyphs. |
| |
| * UserInterface/Views/DarkMode.css: |
| (@media (prefers-dark-interface)): |
| (.content-view.resource.font .preview > .line): |
| (.content-view.resource.font .metric.top): |
| (.content-view.resource.font .metric.baseline): |
| (.content-view.resource.font .metric.middle): |
| (.content-view.resource.font .metric.xheight): |
| (.content-view.resource.font .metric.bottom): |
| |
| 2018-06-20 Daniel Bates <dabates@apple.com> |
| |
| Web Inspector: All non-Same-Site cookies are marked as Same-Site Strict in Storage tab |
| https://bugs.webkit.org/show_bug.cgi?id=186867 |
| <rdar://problem/41175424> |
| |
| Reviewed by Matt Baker. |
| |
| Fixes an issue where cookies that do not have a Same-Site policy would be marked up as Same- |
| Site Strict in Web Inspector's cookie storage content view (under the storage tab). |
| |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype._rebuildTable): Only compute the display name if |
| we cookie.sameSite is non-null and is not WI.Cookie.SameSiteType.None. Moreover, remove |
| an extraneous call to WI.Cookie.parseSameSiteAttributeValue() as cookie.SameSite represents |
| the already parsed value (one of the WI.Cookie.SameSiteType-scoped values). |
| |
| 2018-06-18 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: TypeError: Array.prototype.sort passed bad value in NetworkTableContentView _updateSortAndFilteredEntries |
| https://bugs.webkit.org/show_bug.cgi?id=186787 |
| <rdar://problem/41175680> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): |
| |
| 2018-06-13 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: open source Dark Mode |
| https://bugs.webkit.org/show_bug.cgi?id=186606 |
| |
| Reviewed by Timothy Hatcher. |
| |
| The dark mode is currently only available on macOS Mojave via prefers-dark-interface CSS media query. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/DarkMode.css: Added. |
| (@media (prefers-dark-interface)): |
| (:root): |
| (body.window-inactive): |
| (body.window-inactive *): |
| (#main): |
| (.tree-outline.dom li.selected .selection-area): |
| (.tab-bar > .item > .icon): |
| (.go-to-arrow): |
| (.resource-link,): |
| (.expand-list-button): |
| (:matches(img, canvas).show-grid): |
| (.formatted-object,): |
| (.formatted-null,): |
| (.editing): |
| (.editing, .editing *): |
| (.text-editor > .CodeMirror .execution-line): |
| (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),): |
| (.details-section > .header): |
| (.details-section > .header > label): |
| (.details-section .details-section,): |
| (.details-section .details-section:not(.collapsed) > .header): |
| (.details-section > .content > .group > .row.simple > .label): |
| (.details-section > .content > .group:nth-child(even)): |
| (.details-section > .content > .group > .row:matches(.empty, .text)): |
| (.data-grid th): |
| (.data-grid td .subtitle): |
| (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): |
| (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): |
| (.data-grid tr.editable .cell-content > input): |
| (.data-grid td.spanning): |
| (.object-tree,): |
| (.object-preview .name): |
| (.object-preview > .size): |
| (.tab-bar): |
| (.tab-bar > .item): |
| (.tab-bar > .item > .title): |
| (.tab-bar > .item:not(.disabled).selected): |
| (.tab-bar:not(.animating) > .item:not(.selected):hover): |
| (.tab-bar > .item > .close): |
| (body.window-inactive .tab-bar): |
| (body.window-inactive .tab-bar > .item): |
| (body.window-inactive .tab-bar > .item.selected): |
| (body.window-inactive .tab-bar > .item > .title): |
| (body .toolbar): |
| (body.window-inactive .toolbar): |
| (body.latest-mac .toolbar .item.button,): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]:focus): |
| (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder): |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder): |
| (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button): |
| (body.latest-mac .toolbar .dashboard-container): |
| (body.latest-mac .toolbar .item.button:active): |
| (body.latest-mac.window-inactive .toolbar .item.button,): |
| (.navigation-bar .item.divider): |
| (.toolbar .item.button): |
| (.toolbar .item.button:not(.disabled):active): |
| (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)): |
| (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)): |
| (.toolbar .dashboard.default > .item > div): |
| (.toolbar .dashboard.default > .item.enabled > div): |
| (.toolbar .dashboard.default > .item.enabled:hover): |
| (.toolbar .dashboard.default > .item.enabled:hover > div): |
| (.toolbar .dashboard.default > .resourcesCount > img,): |
| (body.latest-mac .toolbar .dashboard .item.button): |
| (.dashboard-container .advance-arrow): |
| (.toolbar .dashboard.debugger): |
| (.dashboard.debugger .navigation-bar .item.button > .glyph): |
| (.dashboard.debugger > .location .function-name): |
| (.dashboard.debugger > .location .go-to-link): |
| (.dashboard.debugger > .divider): |
| (.popover .edit-breakpoint-popover-content > label.toggle): |
| (.popover .edit-breakpoint-popover-content > table > tr > th): |
| (.breakpoint-action-block-body): |
| (.breakpoint-action-block-body > .description): |
| (.breakpoint-action-append-button,): |
| (.popover .xhr-breakpoint-content > .editor-wrapper > .editor): |
| (.navigation-bar .item.button): |
| (.spreadsheet-style-declaration-editor .property:not(.disabled) .value): |
| (.spreadsheet-css-declaration): |
| (.spreadsheet-css-declaration .selector:focus,): |
| (.spreadsheet-css-declaration.locked .origin::after): |
| (.spreadsheet-css-declaration .origin .go-to-link,): |
| (.spreadsheet-style-declaration-editor :matches(.name, .value).editing): |
| (.spreadsheet-style-declaration-editor .property.has-warning): |
| (.spreadsheet-style-declaration-editor .property.has-warning .warning): |
| (.spreadsheet-css-declaration .media-label): |
| (.quick-console): |
| (.syntax-highlighted,): |
| (.cm-s-default,): |
| (.CodeMirror .jump-to-symbol-highlight,): |
| (.console-prompt): |
| (.completion-suggestions): |
| (.completion-suggestions-container > .item): |
| (.CodeMirror-cursor): |
| (.CodeMirror .CodeMirror-gutters): |
| (.cm-s-default .cm-link): |
| (.cm-s-default .cm-m-xml.cm-attribute,): |
| (.cm-s-default .cm-meta): |
| (.cm-s-default .cm-variable-3): |
| (.cm-s-default .cm-builtin): |
| (.tree-outline .item .subtitle): |
| (.object-tree-property .getter,): |
| (.item.object-tree-property.prototype-property): |
| (.object-tree-property.prototype-property:hover,): |
| (.object-tree-property .value.error): |
| (.tree-outline.dom): |
| (.tree-outline.dom li.selected + ol.children.expanded): |
| (.tree-outline.dom .shadow): |
| (.tree-outline.dom li.parent.shadow + ol.children.expanded,): |
| (.showing-find-banner .tree-outline.dom .search-highlight): |
| (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover): |
| (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label): |
| (.spreadsheet-css-declaration.locked): |
| (.spreadsheet-css-declaration .selector.style-attribute): |
| (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *): |
| (.inline-swatch): |
| (.spreadsheet-style-panel .section-header): |
| (.spreadsheet-style-panel .section-header .node-link:hover): |
| (.computed-style-properties.details-section): |
| (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): |
| (.table,): |
| (.table > .header > .sortable:active): |
| (.table > .header > :matches(.sort-ascending, .sort-descending)): |
| (.table > .header > :matches(.sort-ascending, .sort-descending)::after): |
| (.scope-bar > li): |
| (.timeline-overview > .navigation-bar.timelines): |
| (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)): |
| (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),): |
| (.time-icon .icon): |
| (.data-grid th:matches(.sort-ascending, .sort-descending)): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple): |
| (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows): |
| (.content-view.settings .navigation-bar): |
| (.content-view.settings .navigation-bar .item.radio.button.text-only.selected): |
| (.new-tab.tab.content-view): |
| (.filter-bar > input[type="search"]): |
| (.filter-bar > input[type="search"]::placeholder): |
| (.filter-bar > input[type="search"]:focus): |
| (.content-view.resource.image): |
| (.console-messages): |
| (.console-item): |
| (.console-messages:focus .console-item.selected): |
| (.console-messages:focus .console-item.selected + .console-item): |
| (.console-session:first-of-type .console-session-header): |
| (.console-session:not(:first-of-type) .console-session-header): |
| (.console-messages a): |
| (.console-messages a:hover): |
| (.console-messages:focus .console-item.selected::after): |
| (.console-error-level): |
| (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item): |
| (.console-warning-level): |
| (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item): |
| (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted): |
| (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected): |
| (.source-code.text-editor > .CodeMirror .error): |
| (.source-code.text-editor > .CodeMirror .warning): |
| (.source-code.text-editor > .CodeMirror .issue-widget): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.error): |
| (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow): |
| (.console-message .syntax-highlighted): |
| (.console-warning-level .console-message-text): |
| (.console-error-level .console-message-text): |
| (.console-user-command > .console-message-text): |
| (.console-message .repeat-count): |
| (.call-frame .subtitle,): |
| (.call-frame:hover .subtitle .source-link,): |
| (.call-frame .separator): |
| (.quick-console.showing-log): |
| (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)): |
| (.network-resource-detail): |
| (.network-resource-detail .item.close > .glyph): |
| (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): |
| (.resource-headers .value): |
| (.network-table .cell.domain > .lock): |
| (.resource-sizes > .content .label): |
| (.popover.waterfall-popover): |
| (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): |
| (.resource-timing-breakdown > table > tr > td.label,): |
| (.resource-timing-breakdown > table hr): |
| (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon): |
| (.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): |
| (.item.action:not(.initial-state)::before): |
| (.tree-outline .item.action.visual:not(.selected, .invalid)): |
| (.item.action:not(.initial-state) > .icon): |
| (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon,): |
| (.content-view.canvas > .preview > img,): |
| (.content-view.canvas-overview): |
| (.content-view.canvas-overview .content-view.canvas): |
| (.content-view.canvas-overview .content-view.canvas.is-recording): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header): |
| (.content-view.canvas-overview .content-view.canvas > header > .titles > .title): |
| (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,): |
| (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): |
| (.content-view.canvas:not(.tab)): |
| (.content-view:not(.tab).recording): |
| (.content-view:not(.tab).recording > header > .slider-container): |
| (.content-view:not(.tab).recording > header > .slider-container > input[type=range]): |
| (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified): |
| (.progress-view > .titles > .title): |
| (.progress-view > .titles > .subtitle): |
| (.indeterminate-progress-spinner): |
| (.content-view.shader-program > .text-editor.shader): |
| (.content-view.shader-program > .text-editor.shader > .type-title): |
| (.item.shader-program .status > img): |
| (.open-resource-dialog): |
| (.open-resource-dialog > .field > input): |
| (.open-resource-dialog > .field > input::placeholder): |
| (.open-resource-dialog > .tree-outline .item.selected): |
| (.open-resource-dialog > .field::before): |
| |
| 2018-06-09 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Clean up and modernize some build setting definitions |
| https://bugs.webkit.org/show_bug.cgi?id=186463 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/Base.xcconfig: Removed definition for macOS 10.11. |
| * Configurations/DebugRelease.xcconfig: Ditto. |
| * Configurations/Version.xcconfig: Ditto. |
| |
| 2018-06-05 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Tab picker is briefly visible when TabBar initially shown |
| https://bugs.webkit.org/show_bug.cgi?id=186317 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): Picker should be initially hidden. |
| |
| 2018-06-05 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Text in "Add New Class" in auto-capitalizes |
| https://bugs.webkit.org/show_bug.cgi?id=186311 |
| |
| Reviewed by Matt Baker. |
| |
| Disable spellcheck to prevent auto-capitalization. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout): |
| |
| 2018-06-04 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Cannot copy a link address in Elements tab |
| https://bugs.webkit.org/show_bug.cgi?id=186281 |
| <rdar://problem/39193355> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForURL): |
| |
| 2018-05-30 Daniel Bates <dabates@apple.com> |
| |
| Web Inspector: Annotate Same-Site cookies |
| https://bugs.webkit.org/show_bug.cgi?id=184897 |
| <rdar://problem/35178209> |
| |
| Reviewed by Brian Burg. |
| |
| Add a new column for the value of the Same-Site cookie attribute to the resource cookie content |
| view (shown for a resource under the Network tab) and cookie storage content view (shown under |
| the Storage tab). |
| |
| The SameSite column in the resource cookie content view reflects the parsing of the Same-Site |
| attribute from the HTTP response by Web Inspector. This parsing is materially consistent with |
| the parsing of the SameSite atttribute in CFNetwork. The Same-Site column in the cookie storage |
| content view reflects the Same-Site cookie policy associated with the cookies provided by the |
| network stack, if supported. This column will be blank on systems whose network stack does not |
| support Same-Site cookies (e.g libsoup). |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Controllers/HARBuilder.js: |
| (WI.HARBuilder.cookies): |
| * UserInterface/Models/Cookie.js: |
| (WI.Cookie): |
| (WI.Cookie.displayNameForSameSiteType): |
| (WI.Cookie.parseSameSiteAttributeValue): |
| (WI.Cookie.parseSetCookieResponseHeader): |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype._rebuildTable): |
| (WI.CookieStorageContentView.prototype._sortDataGrid): |
| * UserInterface/Views/ResourceCookiesContentView.js: |
| (WI.ResourceCookiesContentView.prototype.tablePopulateCell): |
| (WI.ResourceCookiesContentView.prototype._generateSortComparator): |
| (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection): |
| |
| 2018-05-25 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Popover dismissed while attempting to move cursor inside |
| https://bugs.webkit.org/show_bug.cgi?id=185741 |
| <rdar://problem/40340938> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Hovering a token within the bounds of the current popover should not |
| show a new popover. This prevents the popover from being dismissed when |
| the cursor passes over a token under the transparent portion of the |
| popover frame. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype._showPopover): |
| |
| 2018-05-22 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r232052. |
| |
| Breaks internal builds. |
| |
| Reverted changeset: |
| |
| "Use more C++17" |
| https://bugs.webkit.org/show_bug.cgi?id=185176 |
| https://trac.webkit.org/changeset/232052 |
| |
| 2018-05-21 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Use more C++17 |
| https://bugs.webkit.org/show_bug.cgi?id=185176 |
| |
| Reviewed by JF Bastien. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-05-18 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas: put `hasVisualEffect` behind an experimental setting |
| https://bugs.webkit.org/show_bug.cgi?id=185758 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Base/Setting.js: |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.process): |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement.prototype.onattach): |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-05-16 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: create a navigation item for toggling the overlay rulers/guides |
| https://bugs.webkit.org/show_bug.cgi?id=185644 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype.get navigationItems): |
| (WI.DOMTreeContentView.prototype.closed): |
| (WI.DOMTreeContentView.prototype._showRulersChanged): Added. |
| (WI.DOMTreeContentView.prototype._toggleShowRulers): Added. |
| |
| 2018-05-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable |
| https://bugs.webkit.org/show_bug.cgi?id=185636 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Variables.css: |
| (:root): |
| |
| 2018-05-14 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas |
| https://bugs.webkit.org/show_bug.cgi?id=182950 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| (WI.CanvasSidebarPanel.prototype._canvasChanged): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement |
| that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will |
| become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar |
| will show the previously selected Recording. |
| |
| 2018-05-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code |
| https://bugs.webkit.org/show_bug.cgi?id=185369 |
| <rdar://problem/40013202> |
| |
| Reviewed by Devin Rousso. |
| |
| Mouse offset calculation should account for the height of the quick console. |
| The only reason resizing worked with the single-line quick console is that |
| the offset calculation included the resizer height, which is very close |
| to that of the single-line quick console (27px and 30px respectively). |
| |
| * UserInterface/Views/ConsoleDrawer.js: |
| |
| 2018-05-04 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: simplify the WI.Collection interface |
| https://bugs.webkit.org/show_bug.cgi?id=185187 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/Collection.js: |
| (WI.Collection.prototype.get size): Added. |
| (WI.Collection.prototype.has): Added. |
| (WI.Collection.prototype.toJSON): |
| (WI.Collection.prototype.[Symbol.iterator]): Added. |
| (WI.Collection.prototype.get items): Deleted. |
| (WI.Collection.prototype.toArray): Deleted. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype._removeCanvas): |
| * UserInterface/Controllers/DOMDebuggerManager.js: |
| (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints): |
| * UserInterface/Models/Frame.js: |
| (WI.Frame.prototype.removeAllChildFrames): |
| (WI.Frame.prototype.resourceForURL): |
| (WI.Frame.prototype.removeAllResources): |
| * UserInterface/Models/Script.js: |
| (WI.Script): |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype.initialLayout): |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView.prototype._updateNavigationItems): |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype._recordingRemoved): |
| (WI.CanvasSidebarPanel.prototype._canvasChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype.attached): |
| (WI.CanvasTabContentView.prototype._addCanvas): |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| * UserInterface/Views/CanvasTreeElement.js: |
| (WI.CanvasTreeElement.prototype.onpopulate): |
| * UserInterface/Views/CollectionContentView.js: |
| (WI.CollectionContentView.prototype.initialLayout): |
| (WI.CollectionContentView.prototype.attached): |
| * UserInterface/Views/CookieStorageContentView.js: |
| (WI.CookieStorageContentView.prototype._filterCookies): |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame): |
| * UserInterface/Views/FolderizedTreeElement.js: |
| (WI.FolderizedTreeElement.prototype.updateParentStatus): |
| (WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders): |
| * UserInterface/Views/FrameTreeElement.js: |
| (WI.FrameTreeElement.prototype.onpopulate): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.get contentTreeOutlines): |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded): |
| * UserInterface/Views/OpenResourceDialog.js: |
| (WI.OpenResourceDialog.prototype._addResourcesForFrame): |
| (WI.OpenResourceDialog.prototype._addResourcesForTarget): |
| * UserInterface/Views/TreeOutlineGroup.js: |
| (WI.TreeOutlineGroup.prototype.get selectedTreeElement): |
| (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections): |
| * UserInterface/Views/WorkerTreeElement.js: |
| (WI.WorkerTreeElement.prototype.onpopulate): |
| |
| 2018-05-04 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Newly added unsupported properties sometimes don't have warnings |
| https://bugs.webkit.org/show_bug.cgi?id=183097 |
| <rdar://problem/37843816> |
| |
| Reviewed by Matt Baker. |
| |
| Update status of properties warnings every time focus moves. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updatePropertiesStatus): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur): |
| |
| 2018-05-04 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first |
| https://bugs.webkit.org/show_bug.cgi?id=181973 |
| |
| Reviewed by Matt Baker. |
| |
| Unified delegate functions to start editing previous/next rules into a single function for |
| simplicity. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted. |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted. |
| |
| * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js: |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged): |
| (WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown): |
| |
| Drive-by fix: provide tabbing support for the Computed styles panel. |
| |
| * UserInterface/Views/CSSStyleDeclarationTextEditor.js: |
| (WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule): |
| (WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule): |
| |
| * UserInterface/Views/ComputedStyleDetailsPanel.js: |
| (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection): |
| (WI.ComputedStyleDetailsPanel.prototype.focusLastSection): |
| (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): |
| |
| 2018-05-04 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas tab: Determine isFunction by looking at the prototype |
| https://bugs.webkit.org/show_bug.cgi?id=184990 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.isFunctionForType): |
| (WI.RecordingAction._prototypeForType): |
| (WI.RecordingAction.prototype.async.swizzle): |
| |
| 2018-05-01 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas tab: determine hasVisibleEffect for all actions immediately after recording is added |
| https://bugs.webkit.org/show_bug.cgi?id=182995 |
| |
| Reviewed by Matt Baker. |
| |
| Previously, we'd swizzle the entirety of the `WI.Recording` in one, which would usually |
| freeze the UI, especially for larger recordings. This patch uses `WI.YieldableTask` to split |
| the work and allow the rest of the UI to still be usable while `WI.Recording` are processing. |
| Additionally, since we no longer have to worry about hangs, we can do more work upfront, |
| such as calculating `hasVisibleEffect` and the current state of 2D canvases. |
| |
| These changes require that all uses of `WI.Recording` call `process()` before attempting to |
| use any `frames`/`actions`/`initialState`, as they will have their original payload values |
| and will have not been swizzled or applied. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Models/Recording.js: |
| (WI.Recording): |
| (WI.Recording.prototype.process): |
| (WI.Recording.prototype.createContext): Added. |
| (WI.Recording.prototype.async yieldableTaskWillProcessItem): Added. |
| (WI.Recording.prototype.async yieldableTaskDidFinish): Added. |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction): |
| (WI.RecordingAction.prototype.process): Added. |
| (WI.RecordingAction.prototype.async swizzle): Added. |
| (WI.RecordingAction.prototype.apply): |
| (WI.RecordingAction.prototype.toJSON): |
| (WI.RecordingAction.prototype.set state): Deleted. |
| (WI.RecordingAction.prototype.swizzle): Deleted. |
| (WI.RecordingAction.prototype.apply.getContent): Deleted. |
| (WI.RecordingAction.prototype.async _swizzle): Deleted. |
| * UserInterface/Models/RecordingInitialStateAction.js: |
| (WI.RecordingInitialStateAction): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype.set action): |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): |
| |
| * UserInterface/Views/RecordingActionTreeElement.js: |
| (WI.RecordingActionTreeElement): |
| (WI.RecordingActionTreeElement.prototype.onattach): |
| (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged): Deleted. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.get navigationItems): |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.initialLayout): |
| (WI.RecordingContentView.prototype._generateContentCanvas2D): Added. |
| (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Added. |
| (WI.RecordingContentView.prototype._updateCanvasPath): |
| (WI.RecordingContentView.prototype._updateProcessProgress): Added. |
| (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Added. |
| (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Added. |
| (WI.RecordingContentView.supportsCanvasPathDebugging): Deleted. |
| (WI.RecordingContentView.prototype.async _generateContentCanvas2D): Deleted. |
| (WI.RecordingContentView.prototype.async _generateContentCanvasWebGL): Deleted. |
| |
| * UserInterface/Views/RecordingContentView.css: |
| (.content-view:not(.tab).recording > .preview-container): |
| |
| * UserInterface/Base/ImageUtilities.js: |
| (WI.ImageUtilities.supportsCanvasPathDebugging): |
| |
| 2018-04-26 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed build fix; fix WebInspectorUI copy resources step after r231063. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-04-26 Jer Noble <jer.noble@apple.com> |
| |
| WK_COCOA_TOUCH all the things. |
| https://bugs.webkit.org/show_bug.cgi?id=185006 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/WebInspectorUIFramework.xcconfig: |
| |
| 2018-04-21 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible |
| https://bugs.webkit.org/show_bug.cgi?id=184858 |
| |
| Reviewed by Brian Burg. |
| |
| r214076 changed the color of all markers to light gray. |
| |
| * UserInterface/Views/TimelineRuler.css: |
| (.timeline-ruler > .markers > .marker): |
| (body[dir=ltr] .timeline-ruler > .markers > .marker): |
| (body[dir=rtl] .timeline-ruler > .markers > .marker): |
| (.timeline-ruler > .markers > .marker.current-time): |
| (.timeline-ruler > .markers > .marker.load-event): |
| (.timeline-ruler > .markers > .marker.dom-content-event): |
| (.timeline-ruler > .markers > .marker.timestamp): |
| (body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted. |
| (body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted. |
| |
| 2018-04-19 Chris Dumez <cdumez@apple.com> |
| |
| Rename JSDOMWindowProxy to JSWindowProxy |
| https://bugs.webkit.org/show_bug.cgi?id=184797 |
| |
| Reviewed by Sam Weinig. |
| |
| Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy. |
| |
| * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js: |
| (HeapSnapshot.prototype._isNodeGlobalObject): |
| |
| 2018-04-19 David Kilzer <ddkilzer@apple.com> |
| |
| Enable Objective-C weak references |
| <https://webkit.org/b/184789> |
| <rdar://problem/39571716> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| (CLANG_ENABLE_OBJC_WEAK): Enable. |
| |
| 2018-04-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Can't select and copy text from Network tab popover |
| https://bugs.webkit.org/show_bug.cgi?id=184606 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (.waterfall-popover .resource-timing-breakdown): |
| |
| 2018-04-12 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Refactoring: move popover styles from JS to CSS |
| https://bugs.webkit.org/show_bug.cgi?id=184558 |
| |
| Reviewed by Brian Burg. |
| |
| Introduce several CSS variables to customize popover appearance in CSS |
| and not JavaScript. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): |
| (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): |
| * UserInterface/Views/Popover.css: |
| (.popover): |
| * UserInterface/Views/Popover.js: |
| (WI.Popover): |
| (WI.Popover.prototype._drawBackground): |
| Replace `var` with `let`. |
| |
| (WI.Popover.prototype.get backgroundStyle): Deleted. |
| (WI.Popover.prototype.set backgroundStyle): Deleted. |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (.popover.waterfall-popover): |
| (.waterfall-popover-content .resource-timing-breakdown): |
| (.waterfall-popover .resource-timing-breakdown): Deleted. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): |
| (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): |
| * UserInterface/Views/Popover.css: |
| (.popover): |
| * UserInterface/Views/Popover.js: |
| (WI.Popover): |
| (WI.Popover.prototype._drawBackground): |
| * UserInterface/Views/ResourceTimingBreakdownView.css: |
| (.popover.waterfall-popover): |
| (.waterfall-popover-content .resource-timing-breakdown): |
| |
| 2018-04-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Errors glyph doesn't fully change to blue when active |
| https://bugs.webkit.org/show_bug.cgi?id=184389 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| The dot of the exclamation mark was always black. |
| |
| * UserInterface/Images/Errors.svg: |
| |
| 2018-04-03 Aaron Chu <aaron_chu@apple.com> |
| |
| AX: Add Experimental setting for Accessibility Audit |
| https://bugs.webkit.org/show_bug.cgi?id=183646 |
| <rdar://problem/38478583> |
| |
| Reviewed by Brian Burg. |
| |
| Added experimental feature flag for Accessibility Audit work. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| |
| 2018-04-01 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Remove dead TabBrowser/TabContentView code |
| https://bugs.webkit.org/show_bug.cgi?id=184104 |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| (WI._tryToRestorePendingTabs): |
| * UserInterface/Views/NewTabContentView.js: |
| (WI.NewTabContentView.prototype.shown): |
| (WI.NewTabContentView.prototype.hidden): |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.addTabForContentView): |
| (WI.TabBrowser.prototype.showTabForContentView): |
| (WI.TabBrowser._tabBarItemRemoved): |
| * UserInterface/Views/TabContentView.js: |
| (WI.TabContentView.prototype.get parentTabBrowser): Deleted. |
| (WI.TabContentView.prototype.set parentTabBrowser): Deleted. |
| |
| 2018-03-30 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: tint all pixels drawn by shader program when hovering ShaderProgramTreeElement |
| https://bugs.webkit.org/show_bug.cgi?id=175223 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/ShaderProgram.js: |
| (WI.ShaderProgram): |
| (WI.ShaderProgram.prototype.showHighlight): |
| (WI.ShaderProgram.prototype.hideHighlight): |
| |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement.prototype.onattach): |
| (WI.ShaderProgramTreeElement.prototype._handleMouseOver): |
| (WI.ShaderProgramTreeElement.prototype._handleMouseOut): |
| Whenever a ShaderProgramTreeElement is hovered, highlight the corresponding shader program |
| by tinting the pixels it draws via a blend. |
| |
| 2018-03-27 Timothy Hatcher <timothy@apple.com> |
| |
| Web Inspector: Modernize some utility functions |
| https://bugs.webkit.org/show_bug.cgi?id=184047 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Utilities.js: |
| (Node.prototype.enclosingNodeOrSelfWithClass): Use parentElement instead of parentNode, so we don't need to check for document. |
| (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Ditto. Also just toUpperCase input, since nodeName is already upper case. |
| (String.prototype.escapeCharacters): Use Set and string iteration instead of indexOf and charAt. |
| |
| 2018-03-27 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Command-Shift-left/right arrow keys should not switch tabs when focused on color picker text fields |
| https://bugs.webkit.org/show_bug.cgi?id=184028 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/EditingSupport.js: |
| (WI.isEventTargetAnEditableField): |
| Detect <input type="number"> as an editable text field. |
| |
| 2018-03-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: don't show checkboxes for invalid properties |
| https://bugs.webkit.org/show_bug.cgi?id=183951 |
| <rdar://problem/38807602> |
| |
| Reviewed by Matt Baker. |
| |
| Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,): |
| (.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted. |
| Don't show checkboxes for invalid properties but still show them for duplicate properties. |
| |
| 2018-03-23 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: add WebKitAdditions hooks for WebInspectorUI |
| https://bugs.webkit.org/show_bug.cgi?id=183940 |
| <rdar://problem/38796310> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * Scripts/combine-resources.pl: |
| (debugLog): Added. Leave in the logging I used to debug this. |
| |
| (concatenateIncludedFilesMatchingPattern): |
| (stripIncludedFilesMatchingPattern): |
| (concatenateFiles): Deleted. |
| This function tried to do too many things. Split it into |
| two functions, one for stripping includes and one for concatenating |
| files referenced by includes. |
| |
| Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes |
| containing that string are not combined when no input directory is passed |
| to the script. |
| |
| * Scripts/copy-user-interface-resources.pl: |
| WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT, |
| depending on the build style. Just try them in order and use the first |
| one that exists. WebInspectorUI files are in their own directory, so |
| we can assume there are files to process if that directory exists. |
| |
| Copy Main.html to derived sources before doing any processing on it. |
| This makes all combining phases have the same --input-html argument. |
| |
| (debugLog): Added. Leave in the logging I used to debug this. |
| |
| (combineOrStripResourcesForWebKitAdditions): |
| (stripResourcesForWebKitAdditions): |
| (combineResourcesForWebKitAdditions): |
| Determine if WebKitAdditions exists and whether there are any |
| resources for WebInspectorUI present that need to be processed. |
| |
| * UserInterface/Main.html: |
| Add stub .js and .css WebKitAdditions files. We can add more later |
| if it makes sense but this is good enough to validate the build machinery. |
| |
| 2018-03-23 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: flashing when switching between nodes |
| https://bugs.webkit.org/show_bug.cgi?id=179291 |
| <rdar://problem/35352660> |
| |
| Reviewed by Matt Baker. |
| |
| Flashing was happening because the layout was a two-step process: |
| 1. Append empty sections. |
| 2. Layout everything inside of the section on requestAnimationFrame. |
| |
| SpreadsheetRulesStyleDetailsPanel was converted to use layout method, |
| so both steps happen on requestAnimationFrame. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh): |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout): |
| The removed lines from the refresh method moved to the layout method without any changes. |
| |
| 2018-03-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Uncaught Exception: TypeError: this._textEditor.toggleUnexecutedCodeHighlights().then is not a function |
| https://bugs.webkit.org/show_bug.cgi?id=181912 |
| <rdar://problem/36700022> |
| |
| Reviewed by Matt Baker. |
| |
| The uncaught exception was caused by returning `false` instead of a promise object. |
| This patch only fixes the exception. Further enhancements should be done in <https://webkit.org/b/183887>. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.toggleTypeAnnotations): |
| (WI.SourceCodeTextEditor.prototype.toggleUnexecutedCodeHighlights): |
| |
| 2018-03-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Loses focus when editing a property while page is being loaded |
| https://bugs.webkit.org/show_bug.cgi?id=182619 |
| <rdar://problem/37363185> |
| |
| Reviewed by Matt Baker. |
| |
| Adding or removing a stylesheet causes SpreadsheetRulesStyleDetailsPanel to refresh, triggering a layout |
| of all SpreadsheetCSSStyleDeclarationSection child views. This resets the focus, selection, and |
| auto-completion state. |
| |
| This patch prevents SpreadsheetCSSStyleDeclarationSection from performing a layout when a property is being edited. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| Allow re-layout after creating a blank CSS property and pasting CSS code. |
| - _pendingAddBlankPropertyIndexOffset is a number after pasting CSS rules. |
| - _propertyPendingStartEditing is a property model after creating a new property. |
| |
| 2018-03-20 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Session dividers are not added when Console tab is not visible |
| https://bugs.webkit.org/show_bug.cgi?id=168622 |
| |
| Reviewed by Matt Baker. |
| |
| Restructure `_pendingMessages` to be a `Map [ConsoleSession, ConsoleMessageView]`. Instead |
| of rendering to the `_currentConsoleGroup`, we now render to the saved `ConsoleSession`. |
| Also ensure that `_pendingMessages` is cleared when navigating and "Preserve Log" is off. |
| |
| * UserInterface/Controllers/JavaScriptLogViewController.js: |
| (WI.JavaScriptLogViewController): |
| (WI.JavaScriptLogViewController.prototype.startNewSession): |
| (WI.JavaScriptLogViewController.prototype.consolePromptHistoryDidChange): |
| (WI.JavaScriptLogViewController.prototype._appendConsoleMessageView): |
| (WI.JavaScriptLogViewController.prototype.renderPendingMessages): |
| (WI.JavaScriptLogViewController.prototype.get prompt): Deleted. |
| (WI.JavaScriptLogViewController.prototype.get currentConsoleGroup): Deleted. |
| |
| 2018-03-20 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Can't add a new class by editing class attribute in DOM outline |
| https://bugs.webkit.org/show_bug.cgi?id=180890 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Typing "my-foo my-bar" creates a single "my-foo\xA0my-bar" class name because |
| contentEditable-based attribute editor sometimes inserts non-breaking space characters (\xA0). |
| |
| Replace all non-breaking space characters with the regular space characters when |
| commiting attribute change. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| |
| 2018-03-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Elements: "Force Print Media Styles" should not persist across Web Inspector sessions |
| https://bugs.webkit.org/show_bug.cgi?id=183708 |
| <rdar://problem/36452183> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| * UserInterface/Views/DOMTreeContentView.js: |
| (WI.DOMTreeContentView): |
| (WI.DOMTreeContentView.prototype._showPrintStylesChanged): |
| (WI.DOMTreeContentView.prototype._togglePrintStyles): |
| (WI.DOMTreeContentView.prototype._showPrintStylesSettingChanged): Deleted. |
| (WI.DOMTreeContentView.prototype._togglePrintStylesSetting): Deleted. |
| |
| 2018-03-14 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas: a recording initiated by the user should be shown immediately on completion |
| https://bugs.webkit.org/show_bug.cgi?id=183647 |
| <rdar://problem/38479187> |
| |
| Reviewed by Matt Baker. |
| |
| When recordings are initiated via `console.record`, we don't want to automatically show the |
| recording after it's payload is sent to the frontend. We determine whether a recording came |
| from the console by comparing the recording's associated canvas with the current value of |
| `_recordingCanvas`. Previously, when stopping a recording, we would always null the value, |
| which meant that all non-single-frame recordings (single-frame recordings are stopped by |
| the agent after the first paint or tick after an action is performed) would be categorized |
| as coming from the console, since `_recordingCanvas` would be null by the time the frontend |
| recieved the payload. |
| |
| This patch changes it so that the nulling of `_recordingCanvas` in `stopRecording` is only |
| done if the agent command errors. It was already the case that `_recordingCanvas` was nulled |
| in `stopRecording`, so this patch just prevents it from being nulled too early. |
| |
| * UserInterface/Controllers/CanvasManager.js: |
| (WI.CanvasManager.prototype.stopRecording): |
| |
| 2018-03-12 Jon Davis <jond@apple.com> |
| |
| Web Inspector: Remove redundant tooltips |
| https://bugs.webkit.org/show_bug.cgi?id=183099 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| Instantiate ConsoleDrawer so the keyboard shortcuts for FindBanner are available. |
| |
| * UserInterface/Views/BreakpointTreeElement.js: |
| (WI.BreakpointTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| * UserInterface/Views/ButtonNavigationItem.js: |
| (WI.ButtonNavigationItem): |
| Only show tooltips when the button style is an image. |
| |
| * UserInterface/Views/ConsoleDrawer.js: |
| (WI.ConsoleDrawer): |
| (WI.ConsoleDrawer.prototype.toggleButtonShortcutTooltip): |
| Added helper to set the toggle button keyboard shortcut tooltip. |
| |
| * UserInterface/Views/DOMBreakpointTreeElement.js: |
| (WI.DOMBreakpointTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| * UserInterface/Views/DOMNodeTreeElement.js: |
| (WI.DOMNodeTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| * UserInterface/Views/FindBanner.js: |
| (WI.FindBanner): |
| * UserInterface/Views/HierarchicalPathComponent.js: |
| (WI.HierarchicalPathComponent): |
| (WI.HierarchicalPathComponent.prototype.get tooltip): |
| (WI.HierarchicalPathComponent.prototype.set tooltip): |
| (WI.HierarchicalPathComponent.prototype.get hideTooltip): |
| (WI.HierarchicalPathComponent.prototype.set hideTooltip): |
| (WI.HierarchicalPathComponent.prototype._updateElementTitleAndText): |
| Add tooltip management features to manage tooltips separately of the displayName, |
| and provide a behavior to hide tooltips while retaining the tooltip data. |
| |
| * UserInterface/Views/HierarchicalPathNavigationItem.js: |
| (WI.HierarchicalPathNavigationItem.prototype.updateLayout): |
| Hide tooltips when fully visible, show tooltips for collapsed items. |
| |
| * UserInterface/Views/PinnedTabBarItem.js: |
| (WI.PinnedTabBarItem.prototype.titleDidChange): |
| Set tooltips for pinned tab bar items. |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole): |
| Set the ConsoleDrawer toggle button tooltip after the keyboard shortcut is registered. |
| |
| * UserInterface/Views/StorageTreeElement.js: |
| (WI.StorageTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| * UserInterface/Views/TabBarItem.js: |
| (WI.TabBarItem.prototype.get title): |
| (WI.TabBarItem.prototype.set title): |
| (WI.TabBarItem.prototype.titleDidChange): |
| (WI.TabBarItem): |
| Add title property management with an overridable titleDidChange handler for |
| setting tooltips when needed. |
| |
| * UserInterface/Views/TimelineTreeElement.js: |
| (WI.TimelineTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| * UserInterface/Views/ToggleButtonNavigationItem.js: |
| (WI.ToggleButtonNavigationItem.prototype.set defaultToolTip): |
| Added a setter for manging the default tooltip of a toggle button. |
| |
| * UserInterface/Views/XHRBreakpointTreeElement.js: |
| (WI.XHRBreakpointTreeElement): |
| Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler. |
| |
| 2018-03-09 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger |
| https://bugs.webkit.org/show_bug.cgi?id=183317 |
| <rdar://problem/38108455> |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Main.js: |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForURL): |
| Introduce preferredTabType option instead of listing ignoreResourcesTab, ignoreDebuggerTab, ignoreSearchTab, and ignoreNetworkTab. |
| The only correct outcome of selecting "Reveal in Sources Tab" context menu is to open Sources tab, not any other tab. |
| |
| * UserInterface/Views/SourceCodeTextEditor.js: |
| (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu): |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject): |
| |
| 2018-03-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes |
| https://bugs.webkit.org/show_bug.cgi?id=183316 |
| <rdar://problem/38107639> |
| |
| Reviewed by Matt Baker. |
| |
| Add Sources tab and sidebar panel, which are copies of the corresponding Resources classes. |
| The Sources tab is shown when it's enabled in the experimental settings. This patch doesn't |
| remove existing Resources and Debugger tabs. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| * UserInterface/Main.html: |
| * UserInterface/Views/SourcesSidebarPanel.css: Added. |
| (.sidebar > .panel.navigation.sources > .content): |
| (.sidebar > .panel.navigation.sources > .navigation-bar): |
| * UserInterface/Views/SourcesSidebarPanel.js: Added. |
| (WI.SourcesSidebarPanel): |
| (WI.SourcesSidebarPanel.shouldPlaceResourcesAtTopLevel): |
| (WI.SourcesSidebarPanel.prototype.get minimumWidth): |
| (WI.SourcesSidebarPanel.prototype.closed): |
| (WI.SourcesSidebarPanel.prototype.showDefaultContentView): |
| (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor): |
| (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.getParent): |
| (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject): |
| (WI.SourcesSidebarPanel.prototype.initialLayout): |
| (WI.SourcesSidebarPanel.prototype.hasCustomFilters): |
| (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match): |
| (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): |
| (WI.SourcesSidebarPanel.prototype._mainResourceDidChange): |
| (WI.SourcesSidebarPanel.prototype._mainFrameDidChange): |
| (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork): |
| (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange): |
| (WI.SourcesSidebarPanel.prototype._scriptWasAdded): |
| (WI.SourcesSidebarPanel.prototype._addScript): |
| (WI.SourcesSidebarPanel.prototype._scriptWasRemoved): |
| (WI.SourcesSidebarPanel.prototype._scriptsCleared): |
| (WI.SourcesSidebarPanel.prototype._styleSheetAdded): |
| (WI.SourcesSidebarPanel.prototype._addTargetWithMainResource): |
| (WI.SourcesSidebarPanel.prototype._targetRemoved): |
| (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange): |
| (WI.SourcesSidebarPanel.prototype._compareTreeElements): |
| (WI.SourcesSidebarPanel.prototype._extraDomainsActivated): |
| (WI.SourcesSidebarPanel.prototype._scopeBarSelectionDidChange): |
| * UserInterface/Views/SourcesTabContentView.js: Added. |
| (WI.SourcesTabContentView): |
| (WI.SourcesTabContentView.tabInfo): |
| (WI.SourcesTabContentView.isTabAllowed): |
| (WI.SourcesTabContentView.prototype.get type): |
| (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser): |
| (WI.SourcesTabContentView.prototype.canShowRepresentedObject): |
| |
| 2018-03-07 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas tab: ensure that the Recording TreeOutline has a specified height for virtualization |
| https://bugs.webkit.org/show_bug.cgi?id=183015 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content): |
| (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): |
| (.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content): |
| (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,): |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): Deleted. |
| (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): Deleted. |
| |
| * UserInterface/Views/TreeElement.js: |
| (WI.TreeElement.prototype._detach): |
| |
| 2018-02-26 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node |
| https://bugs.webkit.org/show_bug.cgi?id=181769 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Images/Markup.svg: Added. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.initialLayout): |
| (WI.CanvasContentView.prototype._canvasElementButtonClicked): |
| |
| 2018-02-19 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Canvas tab: hide navigation sidebar when viewing the overview |
| https://bugs.webkit.org/show_bug.cgi?id=182597 |
| <rdar://problem/37341564> |
| |
| Reviewed by Devin Rousso. |
| |
| Support showing/hiding the navigation sidebar panel based on the current |
| represented object. Individual TabContentViews can opt-in to this behavior, |
| by overriding TabContentView.prototype.managesNavigationSidebarPanel. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel.prototype.canShowRepresentedObject): |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView.prototype.get managesNavigationSidebarPanel): |
| Hide the Canvas navigation sidebar when viewing the overview. |
| |
| * UserInterface/Views/ContentBrowserTabContentView.js: |
| (WI.ContentBrowserTabContentView): |
| (WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel): |
| (WI.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange): |
| (WI.ContentBrowserTabContentView.prototype._contentBrowserCurrentRepresentedObjectsDidChange): |
| |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel.prototype.canShowRepresentedObject): |
| Provide default implementation that just defers to the TabContentView. |
| This exists so that a NavigationSidebarPanel that implements canShowRepresentedObject |
| will have a meaningful default to fall back on. |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype._sidebarCollapsedStateDidChange): |
| (WI.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView): |
| |
| * UserInterface/Views/TabContentView.js: |
| (WI.TabContentView.prototype.get managesNavigationSidebarPanel): |
| |
| 2018-02-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: remove top-level search field and pin the Search tab |
| https://bugs.webkit.org/show_bug.cgi?id=182353 |
| <rdar://problem/37088644> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| Create Search UI based on experimental setting. When the new TabBar is |
| enabled, the Search tab is a pinned tab. Since it is also saveable, it |
| needs to be added to the TabBrowser (the browser adds the item to the bar). |
| |
| When restoring saved tabs, make an additional check to prevent a tab |
| from being added twice. This can occur now that the Search tab is pinned. |
| |
| * UserInterface/Images/Search.svg: |
| Update art to better match Safari/macOS. Slightly increase the radius of |
| the lens, and shorten the length of the handle. |
| |
| * UserInterface/Views/GoToLineDialog.css: |
| (.go-to-line-dialog > div::before): |
| Update styles for new Search icon. |
| |
| * UserInterface/Views/LegacyTabBar.js: |
| (WI.LegacyTabBar.prototype.get saveableTabCount): |
| Backported new TabBar method which is called by TabBrowser. |
| |
| * UserInterface/Views/OpenResourceDialog.css: |
| (.open-resource-dialog > .field::before): |
| Update styles for new Search icon. |
| |
| * UserInterface/Views/PinnedTabBarItem.js: |
| (WI.PinnedTabBarItem.prototype.fromTabInfo): |
| Match GeneralTabBarItem.fromTabInfo. |
| |
| * UserInterface/Views/SearchTabContentView.js: |
| (WI.SearchTabContentView): |
| (WI.SearchTabContentView.tabInfo): |
| New image (magnifying glass without border) when new TabBar is enabled. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView): |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): |
| Move creation of the Settings item out of TabBar. The TabBar should |
| only be concerned with managing tabs. |
| |
| (WI.TabBar.prototype.get saveableTabCount): |
| (WI.TabBar.prototype._handleContextMenu): |
| (WI.TabBar.prototype.get normalNonEphemeralTabCount): Deleted. |
| Now that the Search tab is pinned, there aren't any normal tabs that |
| are also ephemeral. For the LegacyTabBar, both the Search and New Tab |
| tabs are still in this category. |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.addTabForContentView): |
| (WI.TabBrowser.prototype.closeTabForContentView): |
| (WI.TabBrowser.prototype._tabBarItemSelected): |
| (WI.TabBrowser._tabBarItemRemoved): |
| Recent tab list should be validated against the list of saveable tabs, |
| since the Search tab is no longer a normal tab (a GeneralTabBarItem), |
| but is still persisted across Inspector sessions. |
| |
| 2018-02-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: TabBarItem close button is incorrectly positioned |
| https://bugs.webkit.org/show_bug.cgi?id=182844 |
| <rdar://problem/37586749> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/GeneralTabBarItem.js: |
| (WI.GeneralTabBarItem.prototype.set title): |
| Insert the title before the last flexible space item. |
| |
| * UserInterface/Views/TabBar.css: |
| (.tab-bar > .item): |
| (.tab-bar > .item > .close): |
| (.tab-bar > .item > .flex-space): |
| (.tab-bar > .item.ephemeral > .flex-space:last-child): |
| (.tab-bar.collapsed > .item): |
| (.tab-bar.collapsed > .item > .flex-space): |
| (.tab-bar.collapsed > .item > .close): |
| (.tab-bar.collapsed > .item:hover > .close): |
| (.tab-bar.collapsed > .item.ephemeral:hover > .icon): |
| (.tab-bar > .item:hover > .close): Deleted. |
| (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon): Deleted. |
| |
| * UserInterface/Views/TabBarItem.js: |
| (WI.TabBarItem): |
| Restore flexible space items before and after the icon. |
| |
| 2018-02-14 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: completion popover doesn't hide when switching panels |
| https://bugs.webkit.org/show_bug.cgi?id=182464 |
| <rdar://problem/37202763> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Save the position of the anchor, an element the popover is shown for, and hide the completion popover |
| when the position changes. |
| |
| * UserInterface/Views/CompletionSuggestionsView.js: |
| (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves): |
| When the popover is visible, check every 200ms if the anchor moved. |
| |
| (WI.CompletionSuggestionsView.prototype.hide): |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| (WI.SpreadsheetTextField.prototype._getCaretRect): |
| getBoundingClientRect returns {x: 0, y: 0} when it can't determine node's position. |
| This happens when a node isn't attached to DOM, attached to DOM but not visible, and |
| a number of odd cases. |
| |
| 2018-02-14 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: only show allowed tabs in the available tabs context menu |
| https://bugs.webkit.org/show_bug.cgi?id=182721 |
| <rdar://problem/37479019> |
| |
| Reviewed by Timothy Hatcher. |
| |
| In addition to only including allowed tabs in the TabBar context menu, |
| perform a sanity check when setting the selected tab item, since the |
| serialized selection index could refer to a tab that is no longer allowed. |
| |
| * UserInterface/Views/LegacyTabBar.js: |
| (WI.LegacyTabBar.prototype.set selectedTabBarItem): |
| (WI.LegacyTabBar.prototype._handleContextMenu): |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar.prototype.set selectedTabBarItem): |
| (WI.TabBar.prototype._handleContextMenu): |
| |
| 2018-02-09 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Canvas tab: tree selection abruptly changes when selecting a recording frame |
| https://bugs.webkit.org/show_bug.cgi?id=182667 |
| <rdar://problem/37412639> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): |
| (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,): |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.recording > .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .status): |
| (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): Deleted. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon): Deleted. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon): Deleted. |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status): Deleted. |
| Style changes for the additional DOM element required to virtualize the recording tree outline. |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: |
| (WI.CanvasSidebarPanel): |
| In order to be virtualized, the tree must be the only child of its parent. |
| |
| (WI.CanvasSidebarPanel.prototype.set action): |
| Ensure that a frame tree element isn't deselected when the last action |
| in the frame becomes selected in the RecordingContentView. |
| |
| (WI.CanvasSidebarPanel.prototype.shown): |
| Refresh the sidebar, as represented objects may have changed while hidden. |
| |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): |
| Unset the recording when no valid represented objects are found, to |
| prevent a stale recording tree from being shown when viewing the overview. |
| |
| (WI.CanvasSidebarPanel.prototype._canvasChanged): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| Moved toggling of the "has-recordings" style to _canvasChanged, since |
| the navigation bar should be hidden when no canvas exists. |
| |
| * UserInterface/Views/CollectionContentView.js: |
| (WI.CollectionContentView.prototype.addContentViewForItem): |
| (WI.CollectionContentView.prototype.removeContentViewForItem): |
| Drive by fixes for child view visible state. |
| |
| * UserInterface/Views/TreeOutline.css: |
| (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner): |
| Make spinner easier to see against the selection background color. |
| |
| 2018-02-09 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Object.shallowEqual always fails when comparing array property values |
| https://bugs.webkit.org/show_bug.cgi?id=182634 |
| <rdar://problem/37374639> |
| |
| Reviewed by Devin Rousso. |
| |
| Object.shallowEqual should use Array.shallowEqual when comparing property |
| values, since strictly comparing objects/arrays is only true if both |
| operands reference the same Object. |
| |
| * UserInterface/Base/Utilities.js: |
| (value): |
| |
| 2018-02-08 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: add listing of Canvases/Programs/Recordings to the NavigationSidebar |
| https://bugs.webkit.org/show_bug.cgi?id=178744 |
| <rdar://problem/35374379> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Images/Canvas2D.svg: |
| * UserInterface/Images/Canvas3D.svg: |
| * UserInterface/Images/Recording.svg: |
| Update canvas icons to be monochrome. Simplified the recording icon. |
| |
| * UserInterface/Main.html: |
| |
| * UserInterface/Models/RecordingAction.js: |
| (WI.RecordingAction.prototype.get state): |
| (WI.RecordingAction.prototype.set state): |
| Allow (2D) snapshot state to be associated with the action. Used by |
| RecordingActionDetailsSidebarPanel to retrieve the snapshot state. |
| |
| * UserInterface/Views/CanvasContentView.css: |
| (.content-view.canvas:not(.tab)): |
| (.content-view.canvas:not(.tab) > .progress): Deleted. |
| (.content-view.canvas:not(.tab) > .progress > .frame-count): Deleted. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView): |
| (WI.CanvasContentView.prototype.get navigationItems): |
| (WI.CanvasContentView.prototype.layout): |
| (WI.CanvasContentView.prototype.shown): |
| (WI.CanvasContentView.prototype._recordingStarted): |
| (WI.CanvasContentView.prototype._recordingProgress): |
| (WI.CanvasContentView.prototype._recordingStopped): |
| (WI.CanvasContentView.prototype._updateRecordNavigationItem): |
| (WI.CanvasContentView.prototype._updateProgressView): |
| Replace progress UI with a reusable ProgressView class. |
| When in the overview, clicking the CanvasContentView shows a dedicated |
| CanvasContentView for inspecting shaders and recordings. This behavior |
| is controlled by CollectionContentView, so we need to prevent it when |
| clicking inside the header and footer elements, which contain clickable UI. |
| |
| * UserInterface/Views/CanvasDetailsSidebarPanel.js: |
| (WI.CanvasDetailsSidebarPanel.prototype.inspect): |
| |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas): |
| (.content-view.canvas-overview .content-view.canvas.is-recording): |
| (.content-view.canvas-overview .content-view.canvas > :matches(header, footer)): |
| (.content-view.canvas-overview .content-view.canvas > header): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > header): |
| (.content-view.canvas-overview .content-view.canvas > header > .navigation-bar): |
| (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-view,): |
| (.content-view.canvas-overview .content-view.canvas.is-recording > .preview): |
| (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)): Deleted. |
| (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),): Deleted. |
| (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > .preview): Deleted. |
| (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview): Deleted. |
| Clean up styles, and remove selection styles as canvases are no longer selectable in the overview. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype.get navigationItems): |
| (WI.CanvasOverviewContentView.prototype.attached): |
| (WI.CanvasOverviewContentView.prototype.detached): |
| (WI.CanvasOverviewContentView.prototype.get selectionPathComponents): Deleted. |
| (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically): Deleted. |
| (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally): Deleted. |
| (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged): Deleted. |
| (WI.CanvasOverviewContentView.prototype._handleUp): Deleted. |
| (WI.CanvasOverviewContentView.prototype._handleRight): Deleted. |
| (WI.CanvasOverviewContentView.prototype._handleDown): Deleted. |
| (WI.CanvasOverviewContentView.prototype._handleLeft): Deleted. |
| (WI.CanvasOverviewContentView.prototype._handleSpace): Deleted. |
| (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange): Deleted. |
| Disable canvas selection. Remove logic for supplemental represented objects, |
| path components, and selection keyboard shortcuts. |
| |
| * UserInterface/Views/CanvasSidebarPanel.css: Added. |
| (.sidebar > .panel.navigation.canvas > .content): |
| (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.webgl .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): |
| (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): |
| (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.shader-program > .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon): |
| (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status): |
| |
| * UserInterface/Views/CanvasSidebarPanel.js: Added. |
| (WI.CanvasSidebarPanel): |
| (WI.CanvasSidebarPanel.prototype.get canvas): |
| (WI.CanvasSidebarPanel.prototype.set canvas): |
| (WI.CanvasSidebarPanel.prototype.set recording): |
| (WI.CanvasSidebarPanel.prototype.set action): |
| (WI.CanvasSidebarPanel.prototype.shown): |
| (WI.CanvasSidebarPanel.prototype.hidden): |
| (WI.CanvasSidebarPanel.prototype.hasCustomFilters): |
| (WI.CanvasSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): |
| (WI.CanvasSidebarPanel.prototype.initialLayout): |
| (WI.CanvasSidebarPanel.prototype._recordingAdded): |
| (WI.CanvasSidebarPanel.prototype._recordingRemoved): |
| (WI.CanvasSidebarPanel.prototype._scopeBarSelectionChanged): |
| (WI.CanvasSidebarPanel.prototype._toggleRecording): |
| (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): |
| (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): |
| (WI.CanvasSidebarPanel.prototype._canvasChanged): |
| (WI.CanvasSidebarPanel.prototype._recordingChanged): |
| (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem): |
| (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar): |
| Add new navigation sidebar, split into two sections. The upper section |
| contains a tree with a single element for the current canvas, and child |
| elements for any shader programs. The maximum height of this section is 50% |
| of the sidebar's height. The lower section contains a tree for the selected |
| recording, and a scope bar for choosing between recordings. |
| |
| * UserInterface/Views/CanvasTabContentView.css: |
| (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon): |
| (.content-view.tab.canvas .navigation-bar > .item .canvas.webgl .icon): |
| (.content-view.tab.canvas .navigation-bar > .item .shader-program > .icon): |
| (.content-view.tab.canvas .navigation-bar > .item > .hierarchical-path-component > .icon): Deleted. |
| (.content-view.tab.canvas .navigation-bar > .item .canvas .icon): Deleted. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| (WI.CanvasTabContentView.prototype.canShowRepresentedObject): |
| (WI.CanvasTabContentView.prototype.attached): |
| (WI.CanvasTabContentView.prototype._addCanvas): |
| (WI.CanvasTabContentView.prototype._removeCanvas): |
| (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange): |
| (WI.CanvasTabContentView.prototype._recordingAdded): |
| (WI.CanvasTabContentView.prototype._handleSpace): |
| (WI.CanvasTabContentView.prototype.showRepresentedObject): Deleted. |
| (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged): Deleted. |
| (WI.CanvasTabContentView.prototype._recordingActionIndexChanged): Deleted. |
| (WI.CanvasTabContentView.prototype._updateActionIndex): Deleted. |
| The canvas tab now maintains a tree outline of all canvases, with an |
| "Overview" element as the root. The Overview element is always the first |
| item of content browser's hierarchical path. |
| |
| * UserInterface/Views/CanvasTreeElement.js: |
| (WI.CanvasTreeElement.createRecordingTreeElement): |
| (WI.CanvasTreeElement): |
| (WI.CanvasTreeElement.prototype.onattach): |
| (WI.CanvasTreeElement.prototype.onpopulate): |
| (WI.CanvasTreeElement.prototype._updateStatus): |
| (WI.CanvasTreeElement.prototype.ondetach): Deleted. |
| Make it possible to not show recordings under the Canvas element. |
| Create `isRecording` status element (spinner). |
| |
| * UserInterface/Views/CollectionContentView.js: |
| (WI.CollectionContentView.prototype.shown): |
| (WI.CollectionContentView.prototype.hidden): |
| Child ContentViews need to be updated when the collection's visibility changes. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.isViewable): |
| |
| * UserInterface/Views/ProgressView.css: Added. |
| (.progress-view): |
| (.progress-view > .titles): |
| (.progress-view > .titles > .title): |
| (.progress-view > .titles > .subtitle): |
| (.progress-view > .titles > .subtitle::before): |
| (.progress-view > .indeterminate-progress-spinner): |
| |
| * UserInterface/Views/ProgressView.js: Added. |
| (WI.ProgressView): |
| (WI.ProgressView.prototype.get title): |
| (WI.ProgressView.prototype.set title): |
| (WI.ProgressView.prototype.get subtitle): |
| (WI.ProgressView.prototype.set subtitle): |
| (WI.ProgressView.prototype.get visible): |
| (WI.ProgressView.prototype.set visible): |
| (WI.ProgressView.prototype.initialLayout): |
| (WI.ProgressView.prototype._updateTitles): |
| New view class (not a ContentView) for showing a generic progress message, |
| with a title, subtitle, and progress spinner. |
| |
| * UserInterface/Views/RecordingContentView.css: |
| (.content-view:not(.tab).recording > .preview-container): |
| Remove unnecessary styles. |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView): |
| (WI.RecordingContentView.prototype.get navigationItems): |
| (WI.RecordingContentView.prototype.get supplementalRepresentedObjects): |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| (WI.RecordingContentView.prototype.get saveData): |
| (WI.RecordingContentView.prototype._exportRecording): |
| Relocate the recording export logic and UI. |
| (WI.RecordingContentView.prototype.async._generateContentCanvas2D): |
| (WI.RecordingContentView.prototype.async._generateContentCanvasWebGL): |
| (WI.RecordingContentView.prototype._sliderChanged): |
| Refactor logic for notifying the rest of the UI of changes to the action slider. |
| The selected action is now exposed as a supplemental represented object, and a |
| corresponding SupplementalRepresentedObjectsDidChange event. |
| |
| * UserInterface/Views/RecordingStateDetailsSidebarPanel.js: |
| (WI.RecordingStateDetailsSidebarPanel.prototype.inspect): |
| (WI.RecordingStateDetailsSidebarPanel.prototype.set action): |
| (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D): |
| (WI.RecordingStateDetailsSidebarPanel): |
| (WI.RecordingStateDetailsSidebarPanel.prototype.updateAction): Deleted. |
| |
| * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js: |
| (WI.RecordingTraceDetailsSidebarPanel.prototype.inspect): |
| (WI.RecordingTraceDetailsSidebarPanel.prototype.set action): |
| (WI.RecordingTraceDetailsSidebarPanel): |
| (WI.RecordingTraceDetailsSidebarPanel.prototype.updateAction): Deleted. |
| Now that the selected action is exposed to the UI as a supplemental |
| represented object, details sidebars can be more decoupled from the |
| canvas tab, and be notified of changes to the selection via `inspect()`. |
| |
| * UserInterface/Views/ResourceIcons.css: |
| (.canvas > .icon): Deleted. |
| (.shader-program .icon): Deleted. |
| |
| 2018-02-08 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: Typing value and quickly moving focus away may display outdated value in UI |
| https://bugs.webkit.org/show_bug.cgi?id=182588 |
| <rdar://problem/37332161> |
| |
| Reviewed by Matt Baker. |
| |
| CSSProperty models were updated with a 250ms delay. Quickly adding a blank property after modifying |
| an existing property could result in outdated values being shown. |
| |
| This patch removes the 250ms delay. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidChange): |
| |
| 2018-02-07 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: replace isAncestor with Node.contains() in LegacyTabBar |
| https://bugs.webkit.org/show_bug.cgi?id=182586 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * UserInterface/Views/LegacyTabBar.js: |
| |
| 2018-02-07 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: completion popover doesn't hide when switching panels |
| https://bugs.webkit.org/show_bug.cgi?id=182464 |
| <rdar://problem/37202763> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Hide completion popover by triggering blur event on the focused text field. |
| Removing text fields from the DOM tree would hide the completion popovers as well, |
| but switching sidebar panels doesn't remove them from the DOM. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hidden): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype.hidden): |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel.prototype.hidden): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.hidden): |
| |
| 2018-02-06 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Replace isAncestor and isDescendant with native DOM contains method |
| https://bugs.webkit.org/show_bug.cgi?id=182069 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| (WI.restoreFocusFromElement): |
| (WI._mouseDown): |
| (WI._focusedContentBrowser): |
| (WI._focusedContentView): |
| * UserInterface/Base/Utilities.js: |
| (Node.prototype.traverseNextNode): |
| (Node.prototype.isAncestor): Deleted. |
| (Node.prototype.isDescendant): Deleted. |
| (Node.prototype.isSelfOrAncestor): Deleted. |
| (Node.prototype.isSelfOrDescendant): Deleted. |
| * UserInterface/Views/BoxModelDetailsSectionRow.js: |
| (WI.BoxModelDetailsSectionRow.prototype._handleKeyDown): |
| * UserInterface/Views/CSSStyleDeclarationSection.js: |
| (WI.CSSStyleDeclarationSection.prototype._handleSelectorPaste): |
| * UserInterface/Views/DOMTreeOutline.js: |
| (WI.DOMTreeOutline.prototype._onmouseout): |
| * UserInterface/Views/DetailsSection.js: |
| (WI.DetailsSection.prototype._headerElementClicked): |
| * UserInterface/Views/EditingSupport.js: |
| (WI.incrementElementValue): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype._handleContextMenuEvent): |
| * UserInterface/Views/ShaderProgramTreeElement.js: |
| (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown): |
| * UserInterface/Views/SoftContextMenu.js: |
| (WI.SoftContextMenu.prototype._menuItemMouseOut): |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar.prototype.insertTabBarItem): |
| |
| 2018-02-06 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Elements tab should have "Jump to Layer" functionality |
| https://bugs.webkit.org/show_bug.cgi?id=181800 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Base/Main.js: |
| (WI.isShowingElementsTab): |
| (WI.showLayersTab): |
| (WI.isShowingLayersTab): |
| |
| * UserInterface/Views/ContextMenuUtilities.js: |
| (WI.appendContextMenuItemsForDOMNode): |
| |
| * UserInterface/Views/LayersTabContentView.js: |
| (WI.LayersTabContentView.prototype.selectLayerForNode): |
| |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView): |
| (WI.Layers3DContentView.prototype.selectLayerForNode): |
| (WI.Layers3DContentView.prototype.layout): |
| |
| * UserInterface/Views/LayerDetailsSidebarPanel.js: |
| (WI.LayerDetailsSidebarPanel): |
| (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId): |
| (WI.LayerDetailsSidebarPanel.prototype._updateDataGrid): |
| |
| 2018-02-06 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Rename String.prototype.trimEnd to avoid conflicts with native trimEnd |
| https://bugs.webkit.org/show_bug.cgi?id=182545 |
| |
| Reviewed by Brian Burg. |
| |
| Rename: |
| - trimEnd to truncateEnd |
| - trimMiddle to truncateMiddle |
| |
| * UserInterface/Base/Utilities.js: |
| (String.prototype.trimMiddle): Deleted. |
| (String.prototype.trimEnd): Deleted. |
| (String.prototype.truncateMiddle): Added. |
| (String.prototype.truncateEnd): Added. |
| Use strict mode. Scrict mode allows `this` to be a primitive (a string, in our case). |
| In non-strict mode, `this` is always an object. Without the strict mode, |
| "a".truncateEnd(42) !== "a", because truncateEnd returns a string object. |
| |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._buildAttributeDOM): |
| * UserInterface/Views/DOMTreeElementPathComponent.js: |
| (WI.DOMTreeElementPathComponent): |
| * UserInterface/Views/SearchResultTreeElement.js: |
| Remove an obvious comment. |
| |
| (WI.SearchResultTreeElement.truncateAndHighlightTitle): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._renderValue): |
| |
| 2018-02-05 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Add an experimental setting to enable Sources tab |
| https://bugs.webkit.org/show_bug.cgi?id=182461 |
| |
| Reviewed by Brian Burg. |
| |
| This patch only adds a setting. It doesn't add the Sources tab. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Views/SettingsTabContentView.js: |
| |
| 2018-02-02 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property |
| https://bugs.webkit.org/show_bug.cgi?id=179622 |
| <rdar://problem/35511170> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._remove): |
| (WI.SpreadsheetStyleProperty.prototype._update): |
| (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit): |
| (WI.SpreadsheetStyleProperty.prototype._handleNamePaste): |
| When the user pastes into the name field, parse the text for a list of name-value pairs and |
| replace the property being edited with the text of those pairs. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyAddBlankPropertySoon): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): Deleted. |
| Calling `addBlankProperty` will trigger a layout on the next frame, but that might be before |
| the CSSAgent has had a chance to finish refreshing, so we need a way to defer the creation |
| of a new property until after we have finished the next layout (which is after the refresh). |
| Drive-by: fix naming of some delegate functions. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.replaceWithText): |
| Provide a way for replacing the property with new text. |
| |
| 2018-02-02 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: remove New Tab button and add experimental feature flag |
| https://bugs.webkit.org/show_bug.cgi?id=182342 |
| <rdar://problem/37078662> |
| |
| Reviewed by Devin Rousso. |
| |
| This patch adds a new experimental setting group, "User Interface", with |
| a single setting, "Enable New TabBar". When enabled, the New Tab button is |
| no longer available in the top-level TabBar. The 'open tabs' context menu |
| no longer allows the last non-ephemeral open tab to be closed (unchecked). |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| (WI._tryToRestorePendingTabs): |
| Retain legacy behavior behind experimental feature setting. |
| (WI.isNewTabWithTypeAllowed): |
| |
| * UserInterface/Base/Setting.js: |
| * UserInterface/Main.html: |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| * UserInterface/Views/ConsoleTabContentView.js: |
| (WI.ConsoleTabContentView): |
| * UserInterface/Views/DebuggerTabContentView.js: |
| (WI.DebuggerTabContentView): |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| |
| * UserInterface/Views/GeneralTabBarItem.js: |
| (WI.GeneralTabBarItem): |
| (WI.GeneralTabBarItem.prototype.fromTabInfo): |
| (WI.GeneralTabBarItem.prototype.get isEphemeral): |
| (WI.GeneralTabBarItem.fromTabContentViewConstructor): Deleted. |
| |
| * UserInterface/Views/LayersTabContentView.js: |
| (WI.LayersTabContentView): |
| |
| * UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js. |
| (WI.LegacyTabBar): |
| (WI.LegacyTabBar.prototype.get newTabTabBarItem): |
| (WI.LegacyTabBar.prototype.updateNewTabTabBarItemState): |
| (WI.LegacyTabBar.prototype.addTabBarItem): |
| (WI.LegacyTabBar.prototype.insertTabBarItem.animateTabs): |
| (WI.LegacyTabBar.prototype.insertTabBarItem.removeStyles): |
| (WI.LegacyTabBar.prototype.insertTabBarItem): |
| (WI.LegacyTabBar.prototype.removeTabBarItem.animateTabs): |
| (WI.LegacyTabBar.prototype.removeTabBarItem.removeStyles): |
| (WI.LegacyTabBar.prototype.removeTabBarItem): |
| (WI.LegacyTabBar.prototype.selectPreviousTab): |
| (WI.LegacyTabBar.prototype.selectNextTab): |
| (WI.LegacyTabBar.prototype.get selectedTabBarItem): |
| (WI.LegacyTabBar.prototype.set selectedTabBarItem): |
| (WI.LegacyTabBar.prototype.get tabBarItems): |
| (WI.LegacyTabBar.prototype.get normalTabCount): |
| (WI.LegacyTabBar.prototype.layout.forceItemHidden): |
| (WI.LegacyTabBar.prototype.layout): |
| (WI.LegacyTabBar.prototype._tabBarItemsFromLeftToRight): |
| (WI.LegacyTabBar.prototype._findTabBarItem): |
| (WI.LegacyTabBar.prototype._hasMoreThanOneNormalTab): |
| (WI.LegacyTabBar.prototype._openDefaultTab): |
| (WI.LegacyTabBar.prototype._recordTabBarItemSizesAndPositions): |
| (WI.LegacyTabBar.prototype._applyTabBarItemSizesAndPositions): |
| (WI.LegacyTabBar.prototype._clearTabBarItemSizesAndPositions): |
| (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose.): |
| (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose): |
| (WI.LegacyTabBar.prototype._handleMouseDown): |
| (WI.LegacyTabBar.prototype._handleClick): |
| (WI.LegacyTabBar.prototype._handleMouseMoved): |
| (WI.LegacyTabBar.prototype._handleMouseUp): |
| (WI.LegacyTabBar.prototype._handleMouseLeave): |
| (WI.LegacyTabBar.prototype._handleContextMenu): |
| (WI.LegacyTabBar.prototype._handleNewTabClick): |
| (WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu): |
| (WI.LegacyTabBar.prototype._handleNewTabMouseEnter): |
| |
| * UserInterface/Views/NetworkTabContentView.js: |
| (WI.NetworkTabContentView): |
| * UserInterface/Views/NewTabContentView.js: |
| (WI.NewTabContentView): |
| (WI.NewTabContentView.tabInfo): |
| (WI.NewTabContentView.isEphemeral): Deleted. |
| * UserInterface/Views/ResourcesTabContentView.js: |
| (WI.ResourcesTabContentView): |
| * UserInterface/Views/SearchTabContentView.js: |
| (WI.SearchTabContentView): |
| (WI.SearchTabContentView.tabInfo): |
| (WI.SearchTabContentView.isEphemeral): Deleted. |
| |
| * UserInterface/Views/SettingsTabContentView.js: |
| (WI.SettingsTabContentView.tabInfo): |
| (WI.SettingsTabContentView.prototype._createExperimentalSettingsView): |
| (WI.SettingsTabContentView.isEphemeral): Deleted. |
| |
| * UserInterface/Views/StorageTabContentView.js: |
| (WI.StorageTabContentView): |
| |
| * UserInterface/Views/TabBar.css: |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): |
| (WI.TabBar.prototype.insertTabBarItem): |
| (WI.TabBar.prototype.removeTabBarItem): |
| (WI.TabBar.prototype.set selectedTabBarItem): |
| (WI.TabBar.prototype.get normalNonEphemeralTabCount): |
| (WI.TabBar.prototype._handleMouseDown): |
| (WI.TabBar.prototype._handleClick): |
| (WI.TabBar.prototype._handleMouseMoved): |
| (WI.TabBar.prototype._handleMouseLeave): |
| (WI.TabBar.prototype._handleContextMenu): |
| (WI.TabBar.prototype._handleTabPickerTabContextMenu): |
| (WI.TabBar.prototype.get newTabTabBarItem): Deleted. |
| (WI.TabBar.prototype.updateNewTabTabBarItemState): Deleted. |
| (WI.TabBar.prototype._openDefaultTab): Deleted. |
| (WI.TabBar.prototype._handleNewTabClick): Deleted. |
| (WI.TabBar.prototype._handleNewTabMouseEnter): Deleted. |
| Remove support for the New Tab button and default tab. Without a default |
| tab, there is nothing to display when no tabs are open, so prevent the |
| last non-pinned tab from being removed. |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser._tabBarItemRemoved): |
| * UserInterface/Views/TabContentView.js: |
| (WI.TabContentView.isEphemeral): Deleted. |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| |
| 2018-01-30 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Replace Object.shallowMerge with ES2018 spread operator |
| https://bugs.webkit.org/show_bug.cgi?id=182219 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Utilities.js: |
| (Object.shallowMerge): Deleted. |
| * UserInterface/Base/DOMUtilities.js: |
| (WI.linkifyNodeReference): |
| * UserInterface/Base/Main.js: |
| (WI.handlePossibleLinkClick): |
| (WI.openURL): |
| (WI.showSourceCodeLocation): |
| (WI.showOriginalUnformattedSourceCodeLocation): |
| (WI.showOriginalOrFormattedSourceCodeLocation): |
| (WI.showOriginalOrFormattedSourceCodeTextRange): |
| (WI.linkifyLocation): |
| * UserInterface/Views/DOMTreeElement.js: |
| (WI.DOMTreeElement.prototype._insertAdjacentHTML): |
| * UserInterface/Views/WebSocketContentView.js: |
| (WI.WebSocketContentView.prototype._addRow): |
| |
| 2018-01-26 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Timelines content browser NavigationBar is squashed at narrow heights |
| https://bugs.webkit.org/show_bug.cgi?id=182196 |
| <rdar://problem/36929899> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/NavigationBar.css: |
| (.navigation-bar): |
| |
| 2018-01-26 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: improvements to tab layout and resize behavior |
| https://bugs.webkit.org/show_bug.cgi?id=181468 |
| <rdar://problem/36395439> |
| |
| Reviewed by Devin Rousso. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| |
| * UserInterface/Images/TabPicker.svg: Added. |
| New ">>" icon for the tab picker button. |
| |
| * UserInterface/Views/CanvasTabContentView.js: |
| (WI.CanvasTabContentView): |
| * UserInterface/Views/ConsoleTabContentView.js: |
| (WI.ConsoleTabContentView): |
| * UserInterface/Views/DebuggerTabContentView.js: |
| (WI.DebuggerTabContentView): |
| * UserInterface/Views/ElementsTabContentView.js: |
| (WI.ElementsTabContentView): |
| |
| * UserInterface/Views/GeneralTabBarItem.js: |
| (WI.GeneralTabBarItem): |
| (WI.GeneralTabBarItem.fromTabContentViewConstructor): |
| (WI.GeneralTabBarItem.prototype.get title): |
| Add missing override for getter/setter pair. |
| (WI.GeneralTabBarItem.prototype.set title): |
| (WI.GeneralTabBarItem.prototype._handleContextMenuEvent): |
| Show the close button on ephemeral tabs only (Search, New Tab). |
| Replace unused `representedObject` parameter with `isEphemeral`, which |
| determines whether to show a close button for the tab. |
| |
| * UserInterface/Views/LayersTabContentView.js: |
| (WI.LayersTabContentView): |
| |
| * UserInterface/Views/NavigationBar.js: |
| Remove unused symbol. |
| |
| * UserInterface/Views/NetworkTabContentView.js: |
| (WI.NetworkTabContentView): |
| * UserInterface/Views/NewTabContentView.js: |
| (WI.NewTabContentView): |
| |
| * UserInterface/Views/PinnedTabBarItem.js: |
| (WI.PinnedTabBarItem): |
| Remove unused parameter. |
| |
| * UserInterface/Views/ResourcesTabContentView.js: |
| (WI.ResourcesTabContentView): |
| * UserInterface/Views/SearchTabContentView.js: |
| (WI.SearchTabContentView): |
| * UserInterface/Views/StorageTabContentView.js: |
| (WI.StorageTabContentView): |
| |
| * UserInterface/Views/TabBar.css: |
| (.tab-bar > .item): |
| (.tab-bar.calculate-width > .item): |
| (.tab-bar > .item.pinned.tab-picker): |
| (.tab-bar > .item > .close): |
| (.tab-bar > .item > .title): |
| (.tab-bar:not(.collapsed) > .item > .title): |
| (.tab-bar.collapsed > .item:not(.pinned) > .icon): |
| (.tab-bar > .item:hover > .close): |
| (.tab-bar.collapsed > .item:hover > .close): |
| (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon): |
| (.tab-bar.collapsed > .item.ephemeral:hover > .title): |
| (body[dir=ltr] .tab-bar > .item > .close): Deleted. |
| (body[dir=rtl] .tab-bar > .item > .close): Deleted. |
| (.tab-bar > .item > .flex-space): Deleted. |
| (.tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted. |
| (body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted. |
| (body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted. |
| (body[dir=ltr] .tab-bar > .item > .title): Deleted. |
| (body[dir=rtl] .tab-bar > .item > .title): Deleted. |
| (.tab-bar.collapsed > .item): Deleted. |
| (.tab-bar.collapsed > .item > .flex-space): Deleted. |
| (.tab-bar.collapsed > .item > .close): Deleted. |
| (body[dir=ltr] .tab-bar.collapsed > .item > .close): Deleted. |
| (body[dir=rtl] .tab-bar.collapsed > .item > .close): Deleted. |
| (.tab-bar.hide-titles > .item > .title): Deleted. |
| (.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned):hover > .icon,): Deleted. |
| (.tab-bar.collapsed:not(.hide-titles) > .item:hover > .close,): Deleted. |
| Clean up tab styles and prevent tabs from shrinking during flex layout. |
| Added new `calculate-width` class, to disable flex layout when measuring |
| the minimum width of the TabBar required to fit all tab items. |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): |
| (WI.TabBar.prototype.set selectedTabBarItem): |
| (WI.TabBar.prototype.layout.forceItemHidden): |
| (WI.TabBar.prototype.layout): |
| Perform two layout passes, similar to NavigationBar. The first pass disables |
| flex layout and measures tab items at full size. If the bar isn't wide enough |
| to show all the tabs, hide their icons and measure again. If there still isn't |
| room, hide tabs starting from the end of the bar and display the tab picker. |
| |
| (WI.TabBar.prototype._handleMouseDown): |
| (WI.TabBar.prototype._handleTabPickerTabContextMenu): |
| |
| * UserInterface/Views/TabBarItem.js: |
| (WI.TabBarItem): |
| |
| * UserInterface/Views/TimelineTabContentView.js: |
| (WI.TimelineTabContentView): |
| |
| 2018-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network Table: Sort indicator is not displayed when sorted column is hidden and re-shown |
| https://bugs.webkit.org/show_bug.cgi?id=182164 |
| <rdar://problem/36892619> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype.showColumn): |
| Re-add the sort classes if the column being shown is the active sort column. |
| |
| 2018-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network - Cookies view should behave better at narrow widths, all data is hidden |
| https://bugs.webkit.org/show_bug.cgi?id=182163 |
| <rdar://problem/36893241> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/ResourceCookiesContentView.css: |
| (.resource-cookies .table): |
| Give these tables a reasonable minimum size so that if the inspector |
| is narrow, the content view can still be scrolled to see all of |
| the table data. |
| |
| * UserInterface/Views/Table.css: |
| (.table > .header): |
| Match the data-container and mark overflow as hidden, otherwise |
| super narrow widths show header content beyond the edge. |
| |
| 2018-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: "Displayed Columns" should not be displayed in context menu if all columns are required columns |
| https://bugs.webkit.org/show_bug.cgi?id=182162 |
| <rdar://problem/36893758> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Table.js: |
| (WI.Table.prototype._handleHeaderContextMenu): |
| Only add the header column when we know there are hideable columns. |
| |
| 2018-01-24 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Simplify update-LegacyInspectorBackendCommands.rb |
| https://bugs.webkit.org/show_bug.cgi?id=182067 |
| |
| Reviewed by Brian Burg. |
| |
| * Scripts/update-LegacyInspectorBackendCommands.rb: |
| Remove stale dependency_json, it has always been empty for a while now. |
| Switch to framework WebInspectorUI to generate only the backend commands |
| and not spend time generating a bunch of cpp files. |
| |
| 2018-01-24 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| REGRESSION (r226994): Web Inspector: Styles: Suggestions popover floats in top-left corner of Web Inspector after tabbing |
| https://bugs.webkit.org/show_bug.cgi?id=182027 |
| |
| Reviewed by Matt Baker. |
| |
| r226994 added a layout of all properties on property removal. Layout caused |
| a property element to be removed from DOM right before dislaying the suggestion |
| popover, resulting in the popover being displayed at the top left corner. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): |
| Only update property view indices when a property is removed. |
| |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty): |
| (WI.SpreadsheetStyleProperty.prototype.set index): |
| |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| Checking this._element.parentNode to see if the element is attached to the DOM tree is unreliable, |
| since the element may have a non-null parent node that is detached from the DOM tree. To fix that, |
| we could traverse element's ancestors, but I used a concise isConnected property instead. |
| |
| 2018-01-24 Joseph Pecoraro <pecoraro@apple.com> |
| |
| ReferenceError: Can't find variable: DOMAgent (at ScriptSyntaxTree.js:178:22) |
| https://bugs.webkit.org/show_bug.cgi?id=182059 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Models/ScriptSyntaxTree.js: |
| (WI.ScriptSyntaxTree.functionReturnDivot): |
| DOMAgent won't be available in a ServiceWorker or JSContext inspector. So add |
| a check for DOMAgent, and assume if DOMAgent doesn't exist that we should fall |
| back to the latest path (non-iOS 9) target. |
| |
| 2018-01-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network's columns shake when scrolling at non-default zoom level |
| https://bugs.webkit.org/show_bug.cgi?id=181998 |
| <rdar://problem/36449808> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/Table.js: |
| When zoomed the bounding client rect values were fractional, which was |
| unexpected by this area of code. Floor the values to get a value we expect |
| to be able to evenly distribute. |
| |
| 2018-01-22 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: data corruption when updating values quickly |
| https://bugs.webkit.org/show_bug.cgi?id=179461 |
| <rdar://problem/35431882> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Data corruption used to happen because CSSStyleDeclaration.prototype.text didn't |
| update synchronously. Making two or more quick changes resulted in corrupted data. |
| |
| Imagine we modify a CSS value 3 times: |
| |
| Front-end: (1)-(2)---(3) |
| Back-end: (1)-----(2)-(3) |
| |
| The first response from the backend could happen after the 2nd edit. In this patch, |
| CSSStyleDeclaration is locked when its view is being edited. |
| |
| To correctly display invalid and overridden properties, the backend is allowed to update |
| CSSStyleDeclaration and CSSProperty when they're locked if the text from the backend |
| matches the model's text. This should happen when the backend is caught up with the |
| front-end changes. |
| |
| * UserInterface/Models/CSSProperty.js: |
| (WI.CSSProperty.prototype.update): |
| * UserInterface/Models/CSSStyleDeclaration.js: |
| (WI.CSSStyleDeclaration): |
| (WI.CSSStyleDeclaration.prototype.get locked): |
| (WI.CSSStyleDeclaration.prototype.set locked): |
| (WI.CSSStyleDeclaration.prototype.set text): |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.detached): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get editing): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focused): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set inlineSwatchActive): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchActivated): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchDeactivated): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock): |
| Lock CSSStyleDeclaration when a CSS property name or value is focused or |
| an inline widget is active. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js: |
| (WI.SpreadsheetCSSStyleDeclarationSection): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown): |
| (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty): |
| (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch): |
| When selector is focused, clicking on the white-space should not add a new blank property. |
| |
| 2018-01-19 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Web Inspector: Layers tab should do away with popovers (if possible) |
| https://bugs.webkit.org/show_bug.cgi?id=181805 |
| |
| Reviewed by Matt Baker. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| Remove superfluous colon from a string. |
| |
| * UserInterface/Main.html: |
| * UserInterface/Views/LayerDetailsSidebarPanel.css: |
| * UserInterface/Views/Layers3DContentView.css: Added. |
| Remove popover styling from sidebar, add new file with similar styling for canvas overlay. |
| |
| * UserInterface/Views/LayerDetailsSidebarPanel.js: |
| (WI.LayerDetailsSidebarPanel): |
| (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId): |
| (WI.LayerDetailsSidebarPanel.prototype._dataGridSelectedNodeChanged): |
| (WI.LayerDetailsSidebarPanel.prototype._updateLayers): |
| (WI.LayerDetailsSidebarPanel.prototype._updateBottomBar): |
| (WI.LayerDetailsSidebarPanel.prototype.willDismissPopover): Deleted. |
| (WI.LayerDetailsSidebarPanel.prototype._showPopoverForSelectedNode): Deleted. |
| (WI.LayerDetailsSidebarPanel.prototype._presentPopover): Deleted. |
| (WI.LayerDetailsSidebarPanel.prototype._contentForPopover): Deleted. |
| (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons.addReason): Deleted. |
| (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons): Deleted. |
| * UserInterface/Views/Layers3DContentView.js: |
| (WI.Layers3DContentView): |
| (WI.Layers3DContentView.prototype.shown): |
| (WI.Layers3DContentView.prototype.selectLayerById): |
| (WI.Layers3DContentView.prototype._canvasMouseDown): |
| (WI.Layers3DContentView.prototype._buildLayerInfoElement): |
| (WI.Layers3DContentView.prototype._updateLayerInfoElement): |
| (WI.Layers3DContentView.prototype._updateReasonsList): |
| Remove popover from sidebar table, overlay div with same data arrangement on top of the canvas. |
| Also reverse the fix from r226671 since the visualization is no longer unusable without the sidebar! |
| |
| 2018-01-19 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Canvas Tab: Multiple "waiting for frames" messages displayed |
| https://bugs.webkit.org/show_bug.cgi?id=181865 |
| <rdar://problem/36664737> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/CanvasContentView.js: |
| (WI.CanvasContentView.prototype._recordingStarted): |
| (WI.CanvasContentView.prototype._recordingStopped): |
| |
| 2018-01-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: tabbing on commented out property throws exception |
| https://bugs.webkit.org/show_bug.cgi?id=180676 |
| <rdar://problem/35981058> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty): |
| Tabbing from the selector field should focus on the first editable property. |
| When no editable properties are present, a new blank property should be added after the commented out ones. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty): |
| Shift-tabbing from the selector field should focus on the last editable property of the previous CSS rule. |
| When no editable properties are present, a new blank property should be added after the commented out ones. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): |
| When navigating between properties skip the commented out ones. |
| |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyAfter): |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyBefore): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype.get enabled): |
| (WI.SpreadsheetStyleProperty.prototype._update): |
| |
| 2018-01-19 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Make styles sidebar always LTR |
| https://bugs.webkit.org/show_bug.cgi?id=175357 |
| <rdar://problem/33787988> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js: |
| (WI.SpreadsheetRulesStyleDetailsPanel): |
| |
| 2018-01-19 Keith Miller <keith_miller@apple.com> |
| |
| HaveInternalSDK includes should be "#include?" |
| https://bugs.webkit.org/show_bug.cgi?id=179670 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2018-01-18 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions |
| https://bugs.webkit.org/show_bug.cgi?id=181803 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: Updated. |
| * Configurations/DebugRelease.xcconfig: Ditto. |
| * Configurations/Version.xcconfig: Ditto. |
| |
| 2018-01-18 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: Canvas Tab: record button on canvas card doesn't always show on hover, or is misplaced |
| https://bugs.webkit.org/show_bug.cgi?id=179183 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.css: |
| (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop): Deleted. |
| |
| 2018-01-17 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: clicking on a path component that has no siblings should select it |
| https://bugs.webkit.org/show_bug.cgi?id=181772 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/HierarchicalPathComponent.js: |
| (WI.HierarchicalPathComponent.prototype._updateSelectElement): |
| (WI.HierarchicalPathComponent.prototype._selectElementMouseDown): |
| |
| 2018-01-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add back localized strings for Styles sidebar panels |
| https://bugs.webkit.org/show_bug.cgi?id=181748 |
| <rdar://problem/36583184> |
| |
| Reviewed by Brian Burg. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js: |
| (WI.ComputedStyleDetailsSidebarPanel): |
| * UserInterface/Views/RulesStyleDetailsSidebarPanel.js: |
| (WI.RulesStyleDetailsSidebarPanel): |
| * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: |
| (WI.VisualStyleDetailsSidebarPanel): |
| Add back localized strings for panel titles lost in r225547. |
| |
| 2018-01-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Super long URL string causes bad wrapping in Resources detail sidebar |
| https://bugs.webkit.org/show_bug.cgi?id=181617 |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/DetailsSection.css: |
| (.details-section > .content > .group > .row.simple > .value): |
| Set the break to all characters. |
| |
| 2018-01-16 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Canvas tab: typing a "space" in the QuickConsole shouldn't trigger a recording |
| https://bugs.webkit.org/show_bug.cgi?id=181706 |
| <rdar://problem/36558221> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/CanvasOverviewContentView.js: |
| (WI.CanvasOverviewContentView): |
| (WI.CanvasOverviewContentView.prototype._handleSpace): |
| |
| 2018-01-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Make Console's Execution Context picker stand out when it is non-default |
| https://bugs.webkit.org/show_bug.cgi?id=181628 |
| <rdar://problem/36492044> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/HierarchicalPathComponent.css: |
| (.hierarchical-path-component > .selector-arrows): |
| * UserInterface/Views/HierarchicalPathComponent.js: |
| (WI.HierarchicalPathComponent.prototype.set selectorArrows): |
| Switch to SVG element so we can style the arrows. |
| |
| * UserInterface/Views/QuickConsole.css: |
| (.quick-console > .navigation-bar > .hierarchical-path .execution-context): |
| (.quick-console > .navigation-bar > .hierarchical-path .execution-context .separator): |
| (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context): |
| (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows): |
| Styles for the execution context picker. We hide the unused separator |
| and instead use margin so that the selected background and border don't |
| have an extra 7px on the right/end side. |
| |
| * UserInterface/Views/QuickConsole.js: |
| (WI.QuickConsole.prototype._activeExecutionContextChanged): |
| Toggle the non-default class name on the path. |
| |
| 2018-01-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles: pressing down key should select first item from completion list when focusing on empty value |
| https://bugs.webkit.org/show_bug.cgi?id=181633 |
| <rdar://problem/36501797> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetTextField.js: |
| (WI.SpreadsheetTextField.prototype._updateCompletions): |
| |
| 2018-01-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: Long value causes bad wrapping |
| https://bugs.webkit.org/show_bug.cgi?id=181618 |
| <rdar://problem/36485175> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Wrap long values only when editing. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .value.editing): |
| |
| 2018-01-16 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: clicking on the white space after the property sometimes places a blank property at the wrong index |
| https://bugs.webkit.org/show_bug.cgi?id=179585 |
| <rdar://problem/35490780> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js: |
| (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved): |
| Layout call is needed to update data-property-index attributes on the property views. |
| |
| 2018-01-16 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Network Tab - Export HAR Context Menu not working |
| https://bugs.webkit.org/show_bug.cgi?id=181694 |
| <rdar://problem/36479197> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/NetworkTableContentView.js: |
| (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked): |
| Ensure `this` works in the handler. |
| |
| 2018-01-15 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: TabBar redesign: add context menu to TabBar for toggling available tabs |
| https://bugs.webkit.org/show_bug.cgi?id=181448 |
| <rdar://problem/36383298> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Base/Main.js: |
| (WI.loaded): |
| (WI.contentLoaded): |
| Reorder production tab classes and default (open) tabs. |
| (WI.registerTabClass): Removed. |
| Not used. |
| |
| * UserInterface/Base/Object.js: |
| Remove notification that is no longer used. |
| |
| * UserInterface/Views/GeneralTabBarItem.js: |
| (WI.GeneralTabBarItem): |
| (WI.GeneralTabBarItem.prototype.set title): |
| (WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted. |
| Remove per-tab context menu (provided Close Tab and Close Other Tabs). |
| |
| * UserInterface/Views/NewTabContentView.js: |
| (WI.NewTabContentView): |
| |
| * UserInterface/Views/TabBar.js: |
| (WI.TabBar): |
| (WI.TabBar.prototype._handleContextMenu): |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser): |
| (WI.TabBrowser._handleNewTabContextMenu): Deleted. |
| No longer needed. |
| |
| 2018-01-13 Nikita Vasilyev <nvasilyev@apple.com> |
| |
| Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing |
| https://bugs.webkit.org/show_bug.cgi?id=180793 |
| <rdar://problem/36038813> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css: |
| (.spreadsheet-style-declaration-editor .value.editing): |
| (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *): |
| (.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *): |
| (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value): |
| (.spreadsheet-style-declaration-editor .property.not-inherited .content > *): |
| * UserInterface/Views/SpreadsheetStyleProperty.js: |
| (WI.SpreadsheetStyleProperty.prototype._update): |
| |
| 2018-01-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Drop support for iOS 7 targets |
| https://bugs.webkit.org/show_bug.cgi?id=181549 |
| <rdar://problem/36444813> |
| |
| Reviewed by Brian Burg. |
| |
| * Versions/Inspector-iOS-7.0.json: Removed. |
| * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Removed. |
| Remove protocol snapshot and generated commands for iOS 7. |
| |
| * UserInterface/Base/Main.js: |
| * UserInterface/Controllers/BreakpointPopoverController.js: |
| (WI.BreakpointPopoverController.prototype._createPopoverContent): |
| * UserInterface/Controllers/DebuggerManager.js: |
| (WI.DebuggerManager.prototype._setBreakpoint): |
| * UserInterface/Controllers/SourceMapManager.js: |
| (WI.SourceMapManager.prototype._loadAndParseSourceMap): |
| * UserInterface/Models/Instrument.js: |
| (WI.Instrument.startLegacyTimelineAgent): |
| * UserInterface/Models/ResourceTimingData.js: |
| * UserInterface/Models/ScriptTimelineRecord.js: |
| (WI.ScriptTimelineRecord.EventType.displayName): |
| * UserInterface/Models/SourceMapResource.js: |
| (WI.SourceMapResource.prototype.requestContentFromBackend): |
| * UserInterface/Protocol/CSSObserver.js: |
| (WI.CSSObserver.prototype.regionLayoutUpdated): Deleted. |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.fromPayload): |
| Remove code that was only necessary to support iOS 7. |
| |
| 2018-01-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Support JSX (React) syntax highlighting |
| https://bugs.webkit.org/show_bug.cgi?id=181607 |
| <rdar://problem/36442564> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/MIMETypeUtilities.js: |
| (WI.mimeTypeForFileExtension): |
| (WI.fileExtensionForMIMEType): |
| * UserInterface/Models/Resource.js: |
| Support the jsx extension and mime types. |
| |
| * UserInterface/Main.html: |
| * Scripts/update-codemirror-resources.rb: |
| * UserInterface/External/CodeMirror/jsx.js: Added. |
| Include new mode from CodeMirror@d8926768. |
| |
| 2018-01-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Rename "Query String" section as "Query String Parameters" for clarity |
| https://bugs.webkit.org/show_bug.cgi?id=181464 |
| |
| Reviewed by Darin Adler. |
| |
| * Localizations/en.lproj/localizedStrings.js: |
| * UserInterface/Views/ResourceHeadersContentView.js: |
| (WI.ResourceHeadersContentView.prototype.initialLayout): |
| |
| 2018-01-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Remove unused variable in WI.DebuggerSidebarPanel |
| https://bugs.webkit.org/show_bug.cgi?id=181517 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| |
| 2018-01-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION(r218975): Web Inspector: Add back NavigationSidebarPanel initialization parameter used by SearchSidebarPanel (top overflow shadow) |
| https://bugs.webkit.org/show_bug.cgi?id=181518 |
| <rdar://problem/36427197> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/NavigationSidebarPanel.css: |
| (.sidebar > .panel.navigation > .overflow-shadow.top): |
| * UserInterface/Views/NavigationSidebarPanel.js: |
| (WI.NavigationSidebarPanel): |
| Add back the initialization parameter still used by SearchSidebarPanel |
| and add back its implementation. There were still references to |
| dynamically update _topOverflowShadowElement in NavigationSidebarPanel. |
| |
| 2018-01-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Incorrect check with WI.debuggableType |
| https://bugs.webkit.org/show_bug.cgi?id=181515 |
| <rdar://problem/36425509> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Base/Main.js: |
| (WI.contentLoaded): |
| This moved to WI.sharedApp a while ago. |
| |
| 2018-01-10 Matt Baker <mattbaker@apple.com> |
| |
| Web Inspector: Canvas tab: throttle recording slider updates |
| https://bugs.webkit.org/show_bug.cgi?id=180839 |
| <rdar://problem/36057849> |
| |
| Reviewed by Joseph Pecoraro |
| |
| * UserInterface/Base/Utilities.js: |
| Add Object.throttle and Function.cancelThrottle. Repeated calls to a |
| function on a throttled object are delayed, so that the function isn't |
| invoked more frequently than the specified delay value. |
| |
| For a description of throttling behavior see: |
| - http://www.chrislondon.co/throttling-vs-debouncing |
| - http://benalman.com/projects/jquery-throttle-debounce-plugin |
| |
| * UserInterface/Views/RecordingContentView.js: |
| (WI.RecordingContentView.prototype.updateActionIndex): |
| Throttle frequency of canvas snapshot creation to 200ms. |
| (WI.RecordingContentView.prototype.hidden): |
| Prevent trailing edge call after hiding the view. |
| |
| 2018-01-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Should not try to autocomplete subsections of a string |
| https://bugs.webkit.org/show_bug.cgi?id=181461 |
| <rdar://problem/36369421> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/CodeMirrorCompletionController.js: |
| (WI.CodeMirrorCompletionController.prototype._completeAtCurrentPosition): |
| Disable autocompletion within strings. |
| |
| 2018-01-09 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION(r201855): Web Inspector: Should see "length" autocompletion suggestion on a string literal |
| https://bugs.webkit.org/show_bug.cgi?id=181462 |
| <rdar://problem/36390699> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js: |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getCompletions): |
| This is code that runs on the inspected target, which may have an old version of |
| WebKit/JavaScriptCore, so don't use new syntax like this. |
| |
| (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded): |
| We intended to return the result by as a JSON value instead of a RemoteObject. |
| |
| 2018-01-09 Ross Kirsling <ross.kirsling@sony.com> |
| |
| Web Inspector: Layers sidebar shows popover on selection even when collapsed |
| https://bugs.webkit.org/show_bug.cgi?id=181465 |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/LayerDetailsSidebarPanel.js: |
| (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId): |
| Have sidebar show itself if necessary before displaying popover. |
| |
| 2018-01-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Find next / previous within a resource content view does not have bouncy highlight when editor scrolls |
| https://bugs.webkit.org/show_bug.cgi?id=181279 |
| <rdar://problem/36291097> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype._revealSearchResult): |
| Reposition the bouncy highlight on scroll based on the CodeMirror |
| line/ch position of the search result. |
| |
| (WI.TextEditor.prototype._removeBouncyHighlightElementIfNeeded): |
| Track the bouncy highlight scroll handler in a member variable so that |
| we always remember to remove it and don't leak scroll handlers. |
| |
| 2018-01-07 David Kilzer <ddkilzer@apple.com> |
| |
| Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects |
| <https://webkit.org/b/181256> |
| <rdar://problem/36281730> |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: |
| (WARNING_CFLAGS): Add -Wcast-qual. |
| |
| 2018-01-05 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Add another Protocol Version |
| https://bugs.webkit.org/show_bug.cgi?id=181354 |
| <rdar://problem/35432817> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: Added. |
| * Versions/Inspector-iOS-11.3.json: Added. |
| |
| 2018-01-04 Devin Rousso <webkit@devinrousso.com> |
| |
| Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic |
| https://bugs.webkit.org/show_bug.cgi?id=180770 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * UserInterface/Models/Canvas.js: |
| (WI.Canvas.fromPayload): |
| (WI.Canvas.prototype.get contextType): |
| (WI.Canvas.prototype.saveIdentityToCookie): |
| (WI.Canvas.prototype.get frame): Deleted. |
| |
| 2018-01-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION (r225709): Web Inspector: CSS Source maps not loading |
| https://bugs.webkit.org/show_bug.cgi?id=181314 |
| <rdar://problem/36177620> |
| |
| Reviewed by Brian Burg. |
| |
| * UserInterface/Controllers/SourceMapManager.js: |
| (WI.SourceMapManager.prototype._loadAndParseSourceMap): |
| * UserInterface/Models/SourceMapResource.js: |
| (WI.SourceMapResource.prototype.requestContentFromBackend): |
| Correct this so that we only fall back to a reasonable frame id |
| if we couldn't determine a frame id from earlier. Previously this |
| was incorrectly clearing the frame id if we had gotten it earlier. |
| |
| * UserInterface/Test.html: |
| * UserInterface/Test/Test.js: |
| (WI.loaded): |
| Add SourceMap related files for tests. |
| |
| 2018-01-04 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: Capture Element Screenshot looks fuzzy |
| https://bugs.webkit.org/show_bug.cgi?id=175734 |
| <rdar://problem/33803377> |
| |
| Reviewed by Joseph Pecoraro and Simon Fraser. |
| |
| Spruce up these functions a bit. They now optionally return a promise |
| if no callback is supplied. They now can take either a WI.DOMNode or a node id. |
| |
| * UserInterface/Controllers/DOMTreeManager.js: |
| (WI.DOMTreeManager.prototype.querySelector): |
| (WI.DOMTreeManager.prototype.querySelectorAll): |
| |
| 2018-01-04 Brian Burg <bburg@apple.com> |
| |
| Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API |
| https://bugs.webkit.org/show_bug.cgi?id=180945 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Add a new method, fetchProperties, which async fetches an arbitrary list of properties |
| from a RemoteObject. This is intended for writing tests and other quick evaluations, |
| so it has some behaviors that are suitable in these situations: |
| - If the evaluation throws an exception, the result will reject with that exception. |
| - If there is a protocol error for some reason, the result will reject with an exception. |
| - Non-string and non-number keys cause an exception, as this is probably not intended. |
| - Does not accept a callback, returns a promise only. New code should use async. |
| |
| For full fidelity introspection of property descriptors, clients should use the existing |
| getOwnPropertyDescriptor[s] class of methods. |
| |
| * UserInterface/Protocol/RemoteObject.js: |
| (WI.RemoteObject.prototype.async.fetchProperties): Added. |
| - Validate specified keys and remove duplicates. |
| - Request properties one-by-one to avoid fetching all descriptors and dealing with previews. |
| - Unwrap returned primitive values to avoid unnecessary munging in tests. |
| |
| (WI.RemoteObject.prototype.getProperty): |
| - Rework this to return a promise if no callback was supplied. |
| - Introduce stricter property type checking to avoid unintended mistakes. |
| |
| (WI.RemoteObject.prototype.callFunction): |
| - Rework this to return a promise if no callback was supplied. |
| - Turn thrown exceptions and protocol errors into rejected promises. |
| |
| 2018-01-04 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: ⌘G / ⇧⌘G text search does not working after closing find banner |
| https://bugs.webkit.org/show_bug.cgi?id=181280 |
| <rdar://problem/36291175> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/ContentBrowser.js: |
| (WI.ContentBrowser.prototype._findBannerDidHide): |
| When the find banner is hidden trigger a new ContentView method, |
| searchHidden instead of the destructive searchCleared. This allows |
| most content views (text editors, DOM tree, Network Headers view) |
| to keep their populated search results. |
| |
| * UserInterface/Views/ContentView.js: |
| (WI.ContentView.prototype.searchHidden): |
| * UserInterface/Views/LogContentView.js: |
| (WI.LogContentView.prototype.searchHidden): |
| By default searchHidden does nothing. The Console's LogContentView |
| treats the find banner differently and clears its search results. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.searchCleared): |
| Modernize some code while working in this area. |
| |
| * UserInterface/Views/Main.css: |
| (.bouncy-highlight): |
| Ensure black text on yellow background in the bouncy highlight. In the |
| DOM Tree it could have been white if the find banner was closed. |
| |
| 2018-01-03 Ting-Wei Lan <lantw44@gmail.com> |
| |
| Replace hard-coded paths in shebangs with #!/usr/bin/env |
| https://bugs.webkit.org/show_bug.cgi?id=181040 |
| |
| Reviewed by Alex Christensen. |
| |
| * Scripts/combine-resources.pl: |
| * Scripts/copy-user-interface-resources-dryrun.rb: |
| * Scripts/copy-user-interface-resources.pl: |
| * Scripts/fix-worker-imports-for-optimized-builds.pl: |
| * Scripts/remove-console-asserts-dryrun.rb: |
| * Scripts/remove-console-asserts.pl: |
| * Scripts/update-LegacyInspectorBackendCommands.rb: |
| * Scripts/update-codemirror-resources.rb: |
| * WebInspectorUI.vcxproj/build-webinspectorui.pl: |
| |
| 2018-01-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: "Log Value" context menu is sometimes unavailable |
| https://bugs.webkit.org/show_bug.cgi?id=181278 |
| <rdar://problem/36281649> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/ObjectPreviewView.css: |
| (.object-preview > .title): |
| * UserInterface/Views/ObjectTreeView.css: |
| (.object-tree.expanded > .title): |
| Make the expanded object title information 16px tall to match ObjectTree |
| tree element row heights. This eliminates the floating console message |
| location from overlapping the first ObjectTree's TreeElement and causing |
| truncation and other behavior issues (like Context Menu identification). |
| |
| 2018-01-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: RTL - DOM Tree Element selection doesn't work |
| https://bugs.webkit.org/show_bug.cgi?id=181275 |
| <rdar://problem/36290450> |
| |
| Reviewed by Devin Rousso. |
| |
| * UserInterface/Views/TreeOutline.js: |
| (WI.TreeOutline.prototype.treeElementFromEvent): |
| Provide a better explanation for why we are making the `x` adjustment here, |
| to detect the inner most tree element along the horizontal. Fix the algorithm |
| for RTL, since the intent is to adjust to the trailing edge of the container |
| which is on the opposite side in RTL. |
| |
| 2018-01-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Find banner sometimes does not work (when already populated and shown for first time on resource) |
| https://bugs.webkit.org/show_bug.cgi?id=181255 |
| <rdar://problem/36248855> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/TextEditor.js: |
| (WI.TextEditor.prototype.set string): |
| Defer any early searches until the initial content of a TextEditor has been set. |
| Such searches can happen when the FindBanner already has content when a |
| ContentView is first opened and needs to load its content from the backend. |
| Further, even though the content may be loaded from the backend before the |
| search results, microtask hops might cause the content to get to the TextEditor |
| after the search results. |
| |
| 2018-01-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION: Web Inspector: Debugger tab doesn't restore selected resource on reload |
| https://bugs.webkit.org/show_bug.cgi?id=181253 |
| <rdar://problem/36280564> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Views/DebuggerSidebarPanel.js: |
| (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie): |
| Add braces to ensure the trailing else is actually trailing the outer |
| chain as it was intended to be. |
| |
| 2018-01-02 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Clicking source location link in Console unexpectedly jumps to Network tab |
| https://bugs.webkit.org/show_bug.cgi?id=181229 |
| <rdar://problem/36075219> |
| |
| Reviewed by Matt Baker. |
| |
| * UserInterface/Base/Main.js: |
| Cleanup linkifyURLAsNode. Ignore Search tab in generic handlePossibleLinkClick |
| when not already in the Search tab. |
| |
| * UserInterface/Views/CallFrameView.js: |
| (WI.CallFrameView): |
| Ignore Search and Network tab in CallFrame links. |
| |
| * UserInterface/Views/TabBrowser.js: |
| (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject): |
| Improve style. |
| |
| == Rolled over to ChangeLog-2018-01-01 == |