| 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 == |