blob: 83dad3c7d2bd1472c864bfd483bbc8d9c9e43a9e [file] [log] [blame]
drousso@apple.com47d4b352019-01-25 09:27:50 +000012019-01-25 Devin Rousso <drousso@apple.com>
2
drousso@apple.come1944032019-01-25 19:35:29 +00003 Web Inspector: `WI.Setting.migrateValue` doesn't take into account the key prefix
4 https://bugs.webkit.org/show_bug.cgi?id=193814
5
6 Reviewed by Matt Baker.
7
8 * UserInterface/Base/Setting.js:
9 (WI.Setting):
10 (WI.Setting.migrateValue):
11 (WI.Setting._localStorageKey): Added.
12
132019-01-25 Devin Rousso <drousso@apple.com>
14
drousso@apple.com47d4b352019-01-25 09:27:50 +000015 Web Inspector: improve invalid Audit/Recording JSON error messages
16 https://bugs.webkit.org/show_bug.cgi?id=193476
17 <rdar://problem/47303659>
18
19 Reviewed by Joseph Pecoraro.
20
21 * UserInterface/Models/AuditTestBase.js:
22 (WI.AuditTestBase):
23 * UserInterface/Models/AuditTestCase.js:
24 (WI.AuditTestCase.async fromPayload):
25 * UserInterface/Models/AuditTestGroup.js:
26 (WI.AuditTestGroup.async fromPayload):
27 * UserInterface/Models/AuditTestCaseResult.js:
28 (WI.AuditTestCaseResult.async fromPayload.checkArray):
29 (WI.AuditTestCaseResult.async fromPayload):
30 * UserInterface/Models/AuditTestGroupResult.js:
31 (WI.AuditTestGroupResult.async fromPayload):
32 * UserInterface/Controllers/AuditManager.js:
33 (WI.AuditManager.synthesizeWarning): Added.
34 (WI.AuditManager.synthesizeError):
35 (WI.AuditManager.prototype.async processJSON):
36
37 * UserInterface/Models/Recording.js:
38 (WI.Recording.fromPayload):
39 (WI.Recording.synthesizeWarning): Added.
40 (WI.Recording.synthesizeError):
41 * UserInterface/Models/RecordingFrame.js:
42 (WI.RecordingFrame.fromPayload):
43 * UserInterface/Models/RecordingAction.js:
44 (WI.RecordingAction.fromPayload):
45 (WI.RecordingAction.prototype.async swizzle):
46 (WI.RecordingAction.prototype.apply):
47 * UserInterface/Controllers/CanvasManager.js:
48 (WI.CanvasManager.prototype.processJSON):
49
50 * Localizations/en.lproj/localizedStrings.js:
51
drousso@apple.com337c3e62019-01-25 06:47:49 +0000522019-01-24 Devin Rousso <drousso@apple.com>
53
54 Web Inspector: Audit: add supports key to test/group for compatibility
55 https://bugs.webkit.org/show_bug.cgi?id=193686
56 <rdar://problem/47460872>
57
58 Reviewed by Joseph Pecoraro.
59
60 * UserInterface/Models/AuditTestBase.js:
61 (WI.AuditTestBase):
62 (WI.AuditTestBase.prototype.get supported): Added.
63 (WI.AuditTestBase.prototype.set supported): Added.
64 (WI.AuditTestBase.prototype.set disabled):
65 (WI.AuditTestBase.prototype.async start):
66 (WI.AuditTestBase.prototype.stop):
67 (WI.AuditTestBase.toJSON):
68 * UserInterface/Models/AuditTestCase.js:
69 (WI.AuditTestCase.async fromPayload):
70 * UserInterface/Models/AuditTestGroup.js:
71 (WI.AuditTestGroup):
72 (WI.AuditTestGroup.async fromPayload):
73 (WI.AuditTestGroup.prototype.get supported): Added.
74 (WI.AuditTestGroup.prototype.set supported): Added.
75 Add support for a "supports" key in the test JSON that prevents the test from being run if
76 it's value is lower than the frontend/backend version.
77
78 * UserInterface/Views/AuditTreeElement.js:
79 (WI.AuditTreeElement.prototype.onattach):
80 (WI.AuditTreeElement.prototype.ondelete):
81 (WI.AuditTreeElement.prototype.populateContextMenu):
82 (WI.AuditTreeElement.prototype._updateStatus): Added.
83 (WI.AuditTreeElement.prototype._showRunningSpinner):
84 (WI.AuditTreeElement.prototype._showRunningProgress):
85 (WI.AuditTreeElement.prototype._updateTestGroupDisabled):
86 (WI.AuditTreeElement.prototype._handleTestCaseCompleted):
87 (WI.AuditTreeElement.prototype._handleTestResultCleared):
88 (WI.AuditTreeElement.prototype._handleTestGroupCompleted):
89 (WI.AuditTreeElement.prototype._handleManagerEditingChanged):
90 (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Deleted.
91 (WI.AuditTreeElement.prototype._updateLevel): Deleted.
92 * UserInterface/Views/AuditTreeElement.css:
93 (.tree-outline .item.audit:matches(.test-case, .test-group):not(.unsupported, .manager-active) > .status:hover > img): Added.
94 (.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.
95 (.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.
96 (.tree-outline .item.audit.unsupported:not(.selected) > :matches(.icon, .titles)): Added.
97 (.tree-outline .item.audit.unsupported > .status > img): Added.
98 (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Deleted.
99 (.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.
100 (.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.
101 Hide unsupported tests unless in edit mode, where they are greyed out and cannot be enabled.
102 Drive-by: only allow tests to be deleted when in edit mode.
103
104 * UserInterface/Views/AuditNavigationSidebarPanel.js:
105 (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
106
107 * Localizations/en.lproj/localizedStrings.js:
108
commit-queue@webkit.org5cbb2782019-01-25 01:06:17 +00001092019-01-24 Joseph Pecoraro <pecoraro@apple.com>
110
111 Web Inspector: CPU Usage Timeline
112 https://bugs.webkit.org/show_bug.cgi?id=193730
113 <rdar://problem/46797201>
114
115 Reviewed by Devin Rousso.
116
117 CPU Usage is gathered in the backend twice a second, the frequency of the
118 ResourceUsageThread in WebCore. The frontend displays cpu usage in a few
119 ways in the Timeline.
120
121 We use a column chart in the timeline overview to display the frequency and
122 relative distance of samples. This helps show if the samples were close
123 together or far apart, which indicates how meaningful they will be at a
124 particular scale.
125
126 We use a line chart in the timeline detail view which will be easier to see
127 the changes over a particular time range selection.
128
129 * Localizations/en.lproj/localizedStrings.js:
130 New strings.
131
132 * UserInterface/Main.html:
133 * UserInterface/Base/Main.js:
134 (WI.loaded):
135 * UserInterface/Test.html:
136 * UserInterface/Test/Test.js:
137 (WI.loaded):
138 * UserInterface/Protocol/CPUProfilerObserver.js:
139 (WI.CPUProfilerObserver.prototype.trackingStart):
140 (WI.CPUProfilerObserver.prototype.trackingUpdate):
141 (WI.CPUProfilerObserver.prototype.trackingComplete):
142 (WI.CPUProfilerObserver):
143 New files and default registration.
144
145 * UserInterface/Protocol/Target.js:
146 (WI.Target.prototype.get CPUProfilerAgent):
147 New Agent.
148
149 * UserInterface/Controllers/TimelineManager.js:
150 (WI.TimelineManager.availableTimelineTypes):
151 (WI.TimelineManager.prototype.cpuProfilerTrackingStarted):
152 (WI.TimelineManager.prototype.cpuProfilerTrackingUpdated):
153 (WI.TimelineManager.prototype.cpuProfilerTrackingCompleted):
154 (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
155 (WI.TimelineManager.prototype.memoryTrackingStart): Renamed.
156 (WI.TimelineManager.prototype.memoryTrackingUpdate): Renamed.
157 (WI.TimelineManager.prototype.memoryTrackingComplete): Renamed.
158 * UserInterface/Models/CPUInstrument.js:
159 (WI.CPUInstrument):
160 (WI.CPUInstrument.supported):
161 (WI.CPUInstrument.prototype.get timelineRecordType):
162 (WI.CPUInstrument.prototype.startInstrumentation):
163 (WI.CPUInstrument.prototype.stopInstrumentation):
164 * UserInterface/Models/CPUTimelineRecord.js:
165 (WI.CPUTimelineRecord):
166 (WI.CPUTimelineRecord.prototype.get timestamp):
167 (WI.CPUTimelineRecord.prototype.get usage):
168 * UserInterface/Models/Instrument.js:
169 (WI.Instrument.createForTimelineType):
170 * UserInterface/Models/TimelineRecord.js:
171 * UserInterface/Models/TimelineRecording.js:
172 (WI.TimelineRecording.prototype.addRecord):
173 Expose a new CPU instrument and timeline.
174
175 * UserInterface/Views/ColumnChart.js: Added.
176 (WI.ColumnChart):
177 (WI.ColumnChart.prototype.get element):
178 (WI.ColumnChart.prototype.get bars):
179 (WI.ColumnChart.prototype.get size):
180 (WI.ColumnChart.prototype.set size):
181 (WI.ColumnChart.prototype.addBar):
182 (WI.ColumnChart.prototype.clear):
183 (WI.ColumnChart.prototype.needsLayout):
184 (WI.ColumnChart.prototype.updateLayout):
185 View that will draw vertical bars with independent widths.
186 This is meant to be used similiar to WI.LineChart.
187
188 * UserInterface/Images/CPUInstrument.svg: Added.
189 * UserInterface/Views/Variables.css:
190 (:root):
191 CPU timeline colors and icon.
192
193 * UserInterface/Views/CPUTimelineOverviewGraph.css:
194 (body .sidebar > .panel.navigation.timeline > .timelines-content li.item.cpu,):
195 (.timeline-overview-graph.cpu):
196 (.timeline-overview-graph.cpu > .legend):
197 (body[dir=ltr] .timeline-overview-graph.cpu > .legend):
198 (body[dir=rtl] .timeline-overview-graph.cpu > .legend):
199 (.timeline-overview-graph:nth-child(even) > .legend):
200 (body[dir=rtl] .timeline-overview-graph.cpu > .bar-chart):
201 (.timeline-overview-graph.cpu > .bar-chart > svg > g > rect):
202 * UserInterface/Views/CPUTimelineOverviewGraph.js: Added.
203 (WI.CPUTimelineOverviewGraph):
204 (WI.CPUTimelineOverviewGraph.prototype.get height):
205 (WI.CPUTimelineOverviewGraph.prototype.reset):
206 (WI.CPUTimelineOverviewGraph.prototype.layout.xScale):
207 (WI.CPUTimelineOverviewGraph.prototype.layout.yScale):
208 (WI.CPUTimelineOverviewGraph.prototype.layout.yScaleForRecord):
209 (WI.CPUTimelineOverviewGraph.prototype.layout):
210 (WI.CPUTimelineOverviewGraph.prototype._updateLegend):
211 (WI.CPUTimelineOverviewGraph.prototype._cpuTimelineRecordAdded):
212 * UserInterface/Views/CPUTimelineView.css:
213 (.timeline-view.cpu):
214 (.timeline-view.cpu > .content):
215 (.timeline-view.cpu > .content .subtitle):
216 (.timeline-view.cpu > .content > .details):
217 (.timeline-view.cpu > .content > .details > .timeline-ruler):
218 (body[dir=ltr] .timeline-view.cpu > .content > .details > .timeline-ruler):
219 (body[dir=rtl] .timeline-view.cpu > .content > .details > .timeline-ruler):
220 (.timeline-view.cpu > .content > .details > .subtitle):
221 (.cpu-usage-view .line-chart > svg > path):
222 (.timeline-view.cpu .legend > .row > .swatch.current):
223 * UserInterface/Views/CPUTimelineView.js: Added.
224 (WI.CPUTimelineView):
225 (WI.CPUTimelineView.prototype.shown):
226 (WI.CPUTimelineView.prototype.hidden):
227 (WI.CPUTimelineView.prototype.closed):
228 (WI.CPUTimelineView.prototype.reset):
229 (WI.CPUTimelineView.prototype.get scrollableElements):
230 (WI.CPUTimelineView.prototype.get showsFilterBar):
231 (WI.CPUTimelineView.prototype.layout.layoutView):
232 (WI.CPUTimelineView.prototype.layout.xScale):
233 (WI.CPUTimelineView.prototype.layout.yScale):
234 (WI.CPUTimelineView.prototype.layout):
235 (WI.CPUTimelineView.prototype._cpuTimelineRecordAdded):
236 * UserInterface/Views/CPUUsageView.css:
237 (.cpu-usage-view):
238 (.cpu-usage-view > .details):
239 (body[dir=ltr] .cpu-usage-view > .details):
240 (body[dir=rtl] .cpu-usage-view > .details):
241 (.cpu-usage-view > .graph):
242 (body[dir=rtl] .cpu-usage-view > .graph):
243 * UserInterface/Views/CPUUsageView.js:
244 (WI.CPUUsageView):
245 (WI.CPUUsageView.prototype.get element):
246 (WI.CPUUsageView.prototype.clear):
247 (WI.CPUUsageView.prototype.layoutWithDataPoints):
248 (WI.CPUUsageView.prototype._updateDetails):
249 * UserInterface/Views/ContentView.js:
250 (WI.ContentView.createFromRepresentedObject):
251 * UserInterface/Views/TimelineIcons.css:
252 (.cpu-icon .icon):
253 * UserInterface/Views/TimelineOverviewGraph.js:
254 (WI.TimelineOverviewGraph.createForTimeline):
255 * UserInterface/Views/TimelineTabContentView.js:
256 (WI.TimelineTabContentView.displayNameForTimelineType):
257 (WI.TimelineTabContentView.iconClassNameForTimelineType):
258 (WI.TimelineTabContentView.genericClassNameForTimelineType):
259 (WI.TimelineTabContentView.iconClassNameForRecord):
260 (WI.TimelineTabContentView.displayNameForRecord):
261 Timeline views for CPU usage.
262
263 * UserInterface/Views/MemoryCategoryView.js:
264 (WI.MemoryCategoryView):
265 * UserInterface/Views/MemoryTimelineView.js:
266 (WI.MemoryTimelineView.createChartContainer):
267 (WI.MemoryTimelineView):
268 (WI.MemoryTimelineView.prototype._clearMaxComparisonLegend):
269 Minor updates to style and comments.
270
nvasilyev@apple.comd4068252019-01-24 00:59:12 +00002712019-01-23 Nikita Vasilyev <nvasilyev@apple.com>
272
273 Web Inspector: Refactor WI.CSSStyleDeclaration.prototype.update
274 https://bugs.webkit.org/show_bug.cgi?id=193737
275
276 Reviewed by Matt Baker.
277
278 Remove unused event data from the WI.CSSStyleDeclaration.Event.PropertiesChanged event.
279
280 * UserInterface/Models/CSSStyleDeclaration.js:
281 (WI.CSSStyleDeclaration.prototype.update):
282
drousso@apple.comb7cdbe92019-01-23 19:29:18 +00002832019-01-23 Devin Rousso <drousso@apple.com>
284
285 WebInspector: Confusingly nested events in the timeline for Mutation Observers
286 https://bugs.webkit.org/show_bug.cgi?id=192884
287 <rdar://problem/46854178>
288
289 Reviewed by Joseph Pecoraro.
290
291 If a microtask event (e.g. `ObserverCallback`) is contained within a `EvaluatedScript`
292 event, move that microtask event to be a sibling of the `EvaluateScript`, subtracting the
293 microtask's time taken from the `EvaluateScript`'s time. If there are no other children
294 after this move, then remove the `EvaluateScript` altogether.
295
296 * UserInterface/Controllers/TimelineManager.js:
297 (WI.TimelineManager.prototype.eventRecorded.fixMicrotaskPlacement): Added.
298 (WI.TimelineManager.prototype.eventRecorded):
299 (WI.TimelineManager.prototype._mergeScriptProfileRecords):
300
commit-queue@webkit.orgd3f5c3e2019-01-23 18:46:56 +00003012019-01-23 Joseph Pecoraro <pecoraro@apple.com>
302
303 Web Inspector: Network Waterfall column should redraw when adding/removing new columns
304 https://bugs.webkit.org/show_bug.cgi?id=193696
305 <rdar://problem/47464149>
306
307 Reviewed by Devin Rousso.
308
309 * UserInterface/Views/TableColumn.js:
310 (WI.TableColumn.prototype.get needsReloadOnResize):
311 * UserInterface/Views/NetworkTableContentView.js:
312 (WI.NetworkTableContentView.prototype.initialLayout):
313 Mark the waterfall column as sensitive to any resizes.
314
315 * UserInterface/Views/Table.js:
316 (WI.Table.prototype.showColumn):
317 (WI.Table.prototype.hideColumn):
318 Update column widths and reload any columns that may be sensitive to resizes.
319
drousso@apple.come4982882019-01-23 04:17:06 +00003202019-01-22 Devin Rousso <drousso@apple.com>
321
drousso@apple.coma1d43a32019-01-23 04:51:45 +0000322 Web Inspector: InspectorInstrumentation::willEvaluateScript should include column number
323 https://bugs.webkit.org/show_bug.cgi?id=116191
324 <rdar://problem/13905910>
325
326 Reviewed by Joseph Pecoraro.
327
328 * UserInterface/Controllers/TimelineManager.js:
329 (WI.TimelineManager.prototype._processRecord):
330
3312019-01-22 Devin Rousso <drousso@apple.com>
332
drousso@apple.come4982882019-01-23 04:17:06 +0000333 Web Inspector: expose Audit and Recording versions to the frontend
334 https://bugs.webkit.org/show_bug.cgi?id=193262
335 <rdar://problem/47130684>
336
337 Reviewed by Joseph Pecoraro.
338
339 * UserInterface/Protocol/InspectorBackend.js:
340 (InspectorBackendClass.prototype.registerVersion): Added.
341
342 * UserInterface/Models/AuditTestCase.js:
343 * UserInterface/Models/Recording.js:
344 (WI.Recording.fromPayload):
345 Add Interface version values.
346
nvasilyev@apple.comf315cdd2019-01-23 01:46:01 +00003472019-01-22 Nikita Vasilyev <nvasilyev@apple.com>
348
349 Web Inspector: Styles: refactor properties/allProperties/visibleProperties/allVisibleProperties
350 https://bugs.webkit.org/show_bug.cgi?id=193615
351
352 Reviewed by Devin Rousso.
353
354 Remove unused visibleProperties.
355
356 Rename:
357 - properties to enabledProperties;
358 - allProperties to properties;
359 - allVisibleProperties to visibleProperties.
360
361 * UserInterface/Models/CSSProperty.js:
362 (WI.CSSProperty.prototype._prependSemicolonIfNeeded):
363 (WI.CSSProperty):
364 * UserInterface/Models/CSSStyleDeclaration.js:
365 (WI.CSSStyleDeclaration):
366 (WI.CSSStyleDeclaration.prototype.get enabledProperties):
367 (WI.CSSStyleDeclaration.prototype.get properties):
368 (WI.CSSStyleDeclaration.prototype.propertyForName):
369 (WI.CSSStyleDeclaration.prototype.newBlankProperty):
370 (WI.CSSStyleDeclaration.prototype.shiftPropertiesAfter):
371 (WI.CSSStyleDeclaration.prototype._rangeAfterPropertyAtIndex):
372 * UserInterface/Models/DOMNodeStyles.js:
373 (WI.DOMNodeStyles.prototype._parseStylePropertyPayload):
374 (WI.DOMNodeStyles.prototype._markOverriddenProperties):
375 (WI.DOMNodeStyles.prototype._associateRelatedProperties):
376 (WI.DOMNodeStyles.prototype._isPropertyFoundInMatchingRules):
377 (WI.DOMNodeStyles):
378 * UserInterface/Views/BoxModelDetailsSectionRow.js:
379 (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
380 * UserInterface/Views/ComputedStyleDetailsPanel.js:
381 (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
382 * UserInterface/Views/ComputedStyleSection.js:
383 (WI.ComputedStyleSection.prototype.get propertiesToRender):
384 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
385 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
386 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
387 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
388 * UserInterface/Views/SpreadsheetStyleProperty.js:
389 (WI.SpreadsheetStyleProperty.prototype.updateStatus):
390
commit-queue@webkit.orgd4f50612019-01-22 21:23:31 +00003912019-01-22 Joseph Pecoraro <pecoraro@apple.com>
392
393 Web Inspector: Network Table appears broken after filter - rows look collapsed
394 https://bugs.webkit.org/show_bug.cgi?id=192730
395 <rdar://problem/46853158>
396
397 Reviewed by Devin Rousso.
398
399 * UserInterface/Views/Table.js:
400 (WI.Table.prototype._applyColumnWidthsToColumnsIfNeeded):
401 Affect the filler row like the other applyColumnWidths calls since this
402 now may be the initial call to size visible columns.
403
drousso@apple.com2df30452019-01-22 19:54:05 +00004042019-01-22 Devin Rousso <drousso@apple.com>
405
406 Web Inspector: Audit: use plural strings for Passed, Failed, and Unsupported
407 https://bugs.webkit.org/show_bug.cgi?id=193675
408 <rdar://problem/46628680>
409
410 Reviewed by Joseph Pecoraro.
411
412 * UserInterface/Views/AuditTestGroupContentView.js:
413 (WI.AuditTestGroupContentView.prototype.layout):
414
415 * Localizations/en.lproj/localizedStrings.js:
416
jer.noble@apple.comc7894752019-01-18 22:53:49 +00004172019-01-18 Jer Noble <jer.noble@apple.com>
418
419 SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
420 https://bugs.webkit.org/show_bug.cgi?id=189553
421
422 Reviewed by Tim Horton.
423
424 * Configurations/Base.xcconfig:
425 * Configurations/SDKVariant.xcconfig: Added.
426
drousso@apple.com0042e322019-01-18 22:21:02 +00004272019-01-18 Devin Rousso <drousso@apple.com>
428
429 Web Inspector: Uncaught Exception: TypeError: undefined is not an object (evaluating 'resource.finished')
430 https://bugs.webkit.org/show_bug.cgi?id=193589
431
432 Reviewed by Joseph Pecoraro.
433
434 * UserInterface/Views/NetworkTableContentView.js:
435 (WI.NetworkTableContentView.prototype.get supportsSave):
436 (WI.NetworkTableContentView.prototype._HARResources):
437
tsavell@apple.come019d862019-01-18 00:43:25 +00004382019-01-17 Truitt Savell <tsavell@apple.com>
439
440 Unreviewed, rolling out r240124.
441
442 This commit broke an internal build.
443
444 Reverted changeset:
445
446 "SDK_VARIANT build destinations should be separate from non-
447 SDK_VARIANT builds"
448 https://bugs.webkit.org/show_bug.cgi?id=189553
449 https://trac.webkit.org/changeset/240124
450
jer.noble@apple.comfd905482019-01-17 20:46:05 +00004512019-01-17 Jer Noble <jer.noble@apple.com>
452
453 SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
454 https://bugs.webkit.org/show_bug.cgi?id=189553
455
456 Reviewed by Tim Horton.
457
458 * Configurations/Base.xcconfig:
459 * Configurations/SDKVariant.xcconfig: Added.
460
mattbaker@apple.come2edb462019-01-16 22:04:35 +00004612019-01-16 Matt Baker <mattbaker@apple.com>
462
463 Web Inspector: Fix TreeOutline TypeError:​ this._indexesForSubtree is not a function
464 https://bugs.webkit.org/show_bug.cgi?id=193501
465 <rdar://problem/47323967>
466
467 Reviewed by Joseph Pecoraro.
468
469 * UserInterface/Views/TreeOutline.js:
470 (WI.TreeOutline.prototype.removeChildAtIndex):
471
drousso@apple.com3a3286d2019-01-15 08:25:33 +00004722019-01-15 Devin Rousso <drousso@apple.com>
473
474 Web Inspector: Audit: create new IDL type for exposing special functionality in test context
475 https://bugs.webkit.org/show_bug.cgi?id=193149
476 <rdar://problem/46801218>
477
478 Reviewed by Joseph Pecoraro.
479
480 Add `AuditAgent` getters and plumbing.
481
482 * UserInterface/Protocol/Target.js:
483 (WI.Target.prototype.get AuditAgent): Added.
484
485 * UserInterface/Models/AuditTestCase.js:
486 (WI.AuditTestCase.prototype.async run):
487
488 * UserInterface/Controllers/AuditManager.js:
489 (WI.AuditManager.prototype.async start):
490
491 * .eslintrc:
492
drousso@apple.com6874c1b2019-01-14 22:52:31 +00004932019-01-14 Devin Rousso <drousso@apple.com>
494
drousso@apple.com468a1112019-01-14 23:22:46 +0000495 Web Inspector: Event breakpoints: typing uppercase "DOM" doesn't show completions for events that start with "DOM"
496 https://bugs.webkit.org/show_bug.cgi?id=193384
497
498 Reviewed by Joseph Pecoraro.
499
500 * UserInterface/Views/EventBreakpointPopover.js:
501 (WI.EventBreakpointPopover.prototype.show):
502
5032019-01-14 Devin Rousso <drousso@apple.com>
504
drousso@apple.com6874c1b2019-01-14 22:52:31 +0000505 Web Inspector: Event breakpoints: text field and completion popover fonts should match
506 https://bugs.webkit.org/show_bug.cgi?id=193249
507
508 Reviewed by Matt Baker.
509
510 * UserInterface/Views/EventBreakpointPopover.css:
511 (.popover .event-breakpoint-content > .event-type > input): Added.
512 (.popover .event-breakpoint-content > .event-type > input::placeholder): Added.
513 * UserInterface/Views/EventBreakpointPopover.js:
514 (WI.EventBreakpointPopover.prototype.show):
515 (WI.EventBreakpointPopover.prototype._showSuggestionsView):
516 Subtract the <input> border and padding from the bounds position so the <input> text lines
517 up with the `WI.CompletionSuggestionsView` text.
518
519 * UserInterface/Views/CompletionSuggestionsView.js:
520 (WI.CompletionSuggestionsView):
521 Drive-by: force `dir=ltr` to match the `text-align: left;` CSS styling.
522
nvasilyev@apple.comcd736bb2019-01-14 21:07:57 +00005232019-01-14 Nikita Vasilyev <nvasilyev@apple.com>
524
525 Web Inspector: Styles: pressing Down key on empty value field shouldn't discard completion popover
526 https://bugs.webkit.org/show_bug.cgi?id=193098
527 <rdar://problem/47016036>
528
529 Reviewed by Devin Rousso.
530
531 Hide CompletionSuggestionsView when SpreadsheetTextField moves, e.g. by scrolling or resizing the sidebar.
532 Update CompletionSuggestionsView position after pressing Up or Down key, because SpreadsheetTextField may
533 move from wrapping text.
534
535 * UserInterface/Views/CompletionSuggestionsView.js:
536 (WI.CompletionSuggestionsView.prototype.hide):
537 (WI.CompletionSuggestionsView.prototype.show):
538 (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves): Removed.
539 (WI.CompletionSuggestionsView.prototype.hideWhenElementMoves): Added.
540 (WI.CompletionSuggestionsView.prototype._stopMoveTimer): Added.
541 (WI.CompletionSuggestionsView):
542
543 * UserInterface/Views/SpreadsheetTextField.js:
544 (WI.SpreadsheetTextField.prototype.set suggestionHint):
545 (WI.SpreadsheetTextField.prototype.completionSuggestionsSelectedCompletion):
546 (WI.SpreadsheetTextField.prototype._handleKeyDownForSuggestionView):
547 (WI.SpreadsheetTextField.prototype._updateCompletions):
548 (WI.SpreadsheetTextField.prototype._showSuggestionsView): Added.
549
550 (WI.SpreadsheetTextField.prototype._reAttachSuggestionHint):
551 Drive-by: abstract out repeating code into a private method.
552
drousso@apple.com72a93852019-01-14 20:17:24 +00005532019-01-14 Devin Rousso <drousso@apple.com>
554
555 Web Inspector: Settings: group titles should vertically align with the first editor
556 https://bugs.webkit.org/show_bug.cgi?id=193391
557
558 Reviewed by Dean Jackson.
559
560 * UserInterface/Views/SettingsTabContentView.css:
561 (.content-view.settings > .settings-view > .container):
562 (.content-view.settings > .settings-view > .container > .editor-group > .editor): Added.
563 (.content-view.settings > .settings-view > .container > .editor-group > .editor:first-child > *): Added.
564 (.content-view.settings > .settings-view > .container > .editor-group > .editor select):
565 (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="number"]):
566
mattbaker@apple.comfbe9d452019-01-11 21:02:28 +00005672019-01-11 Matt Baker <mattbaker@apple.com>
568
569 Web Inspector: REGRESSION: deleting an audit puts selection in a selected but invisible state
570 https://bugs.webkit.org/show_bug.cgi?id=192917
571 <rdar://problem/46875285>
572
573 Reviewed by Devin Rousso.
574
575 SelectionController should not be notified of removed children until the
576 child items have been removed from the TreeOutline. Doing so at this stage
577 is unsafe, since this method checks `this.selectedTreeElement`, which could
578 return the adjusted index from the SelectionController before anything has
579 actually been removed from the TreeOutline.
580
581 The number of calls to SelectionController.prototype.didRemoveItems is also
582 reduced somewhat, since we're no longer calling it for every TreeElement.
583
584 * UserInterface/Views/TreeOutline.js:
585 (WI.TreeOutline.prototype.removeChildAtIndex):
586 (WI.TreeOutline.prototype.removeChildren):
587 (WI.TreeOutline.prototype._forgetTreeElement):
588 (WI.TreeOutline.prototype._indexesForSubtree): Added.
589
drousso@apple.com38cc6402019-01-11 05:54:54 +00005902019-01-10 Devin Rousso <drousso@apple.com>
591
592 Web Inspector: Audit: allow audits to be enabled/disabled
593 https://bugs.webkit.org/show_bug.cgi?id=192210
594 <rdar://problem/46423583>
595
596 Reviewed by Joseph Pecoraro.
597
598 * UserInterface/Controllers/AuditManager.js:
599 (WI.AuditManager.prototype.get editing): Added.
600 (WI.AuditManager.prototype.set editing): Added.
601 (WI.AuditManager.prototype.stop):
602 (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
603 Since default audits aren't stored, keep a list of disabled default tests in a `WI.Setting`.
604
605 * UserInterface/Models/AuditTestBase.js:
606 (WI.AuditTestBase):
607 (WI.AuditTestBase.prototype.get disabled): Added.
608 (WI.AuditTestBase.prototype.set disabled): Added.
609 (WI.AuditTestBase.prototype.async start):
610 (WI.AuditTestBase.prototype.stop):
611 (WI.AuditTestBase.toJSON):
612
613 * UserInterface/Models/AuditTestCase.js:
614 (WI.AuditTestCase):
615 (WI.AuditTestCase.async fromPayload):
616 (WI.AuditTestCase.prototype.toJSON):
617
618 * UserInterface/Models/AuditTestGroup.js:
619 (WI.AuditTestGroup):
620 (WI.AuditTestGroup.async fromPayload):
621 (WI.AuditTestGroup.prototype.get disabled): Added.
622 (WI.AuditTestGroup.prototype.set disabled): Added.
623 (WI.AuditTestGroup.prototype.toJSON):
624 (WI.AuditTestGroup.prototype.async run):
625 (WI.AuditTestGroup.prototype._handleTestDisabledChanged): Added.
626 (WI.AuditTestGroup.prototype._handleTestProgress):
627 Propagate `disabled` changes to all sub-tests, unless the change was caused by one of the
628 sub-tests, in which case we are now in an intermediate state.
629
630 * UserInterface/Views/AuditNavigationSidebarPanel.js:
631 (WI.AuditNavigationSidebarPanel):
632 (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
633 (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
634 (WI.AuditNavigationSidebarPanel.prototype.hasCustomFilters): Added.
635 (WI.AuditNavigationSidebarPanel.prototype.matchTreeElementAgainstCustomFilters): Added.
636 (WI.AuditNavigationSidebarPanel.prototype._addTest):
637 (WI.AuditNavigationSidebarPanel.prototype._addResult):
638 (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState):
639 (WI.AuditNavigationSidebarPanel.prototype._updateEditButtonNavigationItemState): Added.
640 (WI.AuditNavigationSidebarPanel.prototype._handleAuditManagerEditingChanged): Added.
641 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
642 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled):
643 (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
644 (WI.AuditNavigationSidebarPanel.prototype._handleEditButtonNavigationItemClicked): Added.
645 * UserInterface/Views/AuditNavigationSidebarPanel.css:
646 (.sidebar > .panel.navigation.audit > .content):
647 (.sidebar > .panel.navigation.audit > .content > .tree-outline): Added.
648 (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled):active): Added.
649 (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated): Added.
650 (.sidebar > .panel.navigation.audit > .content .edit-audits:not(.disabled).activated:active): Added.
651 (.sidebar > .panel.navigation.audit > .content .edit-audits.disabled): Added.
652 (.finish-editing-audits-placeholder.message-text-view .navigation-item-help .navigation-bar): Added.
653 Leverage custom filters to ensure that disabled audits arent shown when not editing and that
654 result tree elements aren't shown while editing.
655
656 * UserInterface/Views/AuditTestGroupContentView.js:
657 (WI.AuditTestGroupContentView.prototype.shown):
658
659 * UserInterface/Views/AuditTreeElement.js:
660 (WI.AuditTreeElement.prototype.onattach):
661 (WI.AuditTreeElement.prototype.canSelectOnMouseDown): Added.
662 (WI.AuditTreeElement.prototype._updateTestGroupDisabled): Added.
663 (WI.AuditTreeElement.prototype._handleTestDisabledChanged): Added.
664 (WI.AuditTreeElement.prototype._handleManagerEditingChanged): Added.
665 * UserInterface/Views/AuditTreeElement.css:
666 (.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.
667 (.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.
668 (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)): Deleted.
669 (.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.
670 Prevent selection and running when editing.
671
672 * UserInterface/Views/TreeOutline.css:
673 (.tree-outline .children.expanded:not([hidden])): Added.
674 (.tree-outline .children.expanded): Deleted.
675
676 * UserInterface/Base/ObjectStore.js:
677 (WI.ObjectStore._open):
678 Batch operations together to help avoid multiple simultaneous `indexedDB.open` calls. This
679 should also help preserve the order of operations, as once the database is open, operations
680 are executed in the order they were enqueued.
681
682 (WI.ObjectStore.prototype.async.addObject):
683 Pass a unique `Symbol` to the `toJSON` call on the given object so that the object can save
684 additional values that wouldn't normally be saved. This doesn't conflict with normal usage
685 of `toJSON` (e.g. `JSON.stringify`) because that case also passes in a value:
686 - `undefined`, if it was called directly on the object
687 - the key for this object in the containing object
688 - the index of this object in the containing array
689 In any case, the value can never equal the unique `Symbol`, so it's guaranteed that the code
690 will only run for `WI.ObjectStore` operations.
691
692 (WI.ObjectStore.prototype.async.clear): Added.
693
694 * Localizations/en.lproj/localizedStrings.js:
695
drousso@apple.com212b0272019-01-09 19:38:45 +00006962019-01-09 Devin Rousso <drousso@apple.com>
697
698 Web Inspector: Protocol Logging: log messages as objects if inspector^2 is open
699 https://bugs.webkit.org/show_bug.cgi?id=193284
700
701 Reviewed by Joseph Pecoraro.
702
703 If inspector^2 is closed, stringify all messages.
704 If inspector^2 is open, log each message JSON object without modifying it.
705
706 * UserInterface/Protocol/LoggingProtocolTracer.js:
707 (WI.LoggingProtocolTracer.prototype._processEntry):
708
nvasilyev@apple.com91bddca2019-01-09 08:34:15 +00007092019-01-09 Nikita Vasilyev <nvasilyev@apple.com>
710
711 Web Inspector: Styles: clicking on property that soon to be discarded shouldn't start selection
712 https://bugs.webkit.org/show_bug.cgi?id=193218
713 <rdar://problem/47098303>
714
715 Reviewed by Devin Rousso.
716
717 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
718 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
719 A style property may get removed on blur event, so propertyElement may get removed from the DOM right when mousedown event happens.
720
721 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick):
722 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
723 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._stopSelection):
724
nvasilyev@apple.come81bcfc2019-01-09 02:03:03 +00007252019-01-08 Nikita Vasilyev <nvasilyev@apple.com>
726
nvasilyev@apple.coma943bea2019-01-09 03:29:18 +0000727 Web Inspector: Styles: Undo reverts all changes at once
728 https://bugs.webkit.org/show_bug.cgi?id=177676
729 <rdar://problem/34745031>
730
731 Reviewed by Devin Rousso.
732
733 Command-Z used to revert all changes at once because Web Inspector never
734 set any history checkpoints in the style editor.
735
736 * UserInterface/Views/SpreadsheetStyleProperty.js:
737 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
738 * UserInterface/Views/SpreadsheetTextField.js:
739 (WI.SpreadsheetTextField.prototype._handleBlur):
740
7412019-01-08 Nikita Vasilyev <nvasilyev@apple.com>
742
nvasilyev@apple.come81bcfc2019-01-09 02:03:03 +0000743 Web Inspector: Use prefers-color-scheme instead of prefers-dark-interface
744 https://bugs.webkit.org/show_bug.cgi?id=193265
745
746 Reviewed by Timothy Hatcher.
747
748 * UserInterface/Views/AuditTestContentView.css:
749 (@media (prefers-color-scheme: dark)):
750 * UserInterface/Views/AuditTestGroupContentView.css:
751 (@media (prefers-color-scheme: dark)):
752 * UserInterface/Views/BezierEditor.css:
753 (@media (prefers-color-scheme: dark)):
754 * UserInterface/Views/BoxModelDetailsSectionRow.css:
755 (@media (prefers-color-scheme: dark)):
756 * UserInterface/Views/BreakpointActionView.css:
757 (@media (prefers-color-scheme: dark)):
758 * UserInterface/Views/BreakpointPopoverController.css:
759 (@media (prefers-color-scheme: dark)):
760 * UserInterface/Views/ButtonNavigationItem.css:
761 (@media (prefers-color-scheme: dark)):
762 * UserInterface/Views/ButtonToolbarItem.css:
763 (@media (prefers-color-scheme: dark)):
764 * UserInterface/Views/CallFrameView.css:
765 (@media (prefers-color-scheme: dark)):
766 * UserInterface/Views/CanvasContentView.css:
767 (@media (prefers-color-scheme: dark)):
768 * UserInterface/Views/CanvasOverviewContentView.css:
769 (@media (prefers-color-scheme: dark)):
770 * UserInterface/Views/CanvasSidebarPanel.css:
771 (@media (prefers-color-scheme: dark)):
772 * UserInterface/Views/CanvasTabContentView.css:
773 (@media (prefers-color-scheme: dark)):
774 * UserInterface/Views/CodeMirrorOverrides.css:
775 (@media (prefers-color-scheme: dark)):
776 * UserInterface/Views/CompletionSuggestionsView.css:
777 (@media (prefers-color-scheme: dark)):
778 * UserInterface/Views/ComputedStyleDetailsPanel.css:
779 (@media (prefers-color-scheme: dark)):
780 * UserInterface/Views/ComputedStyleSection.css:
781 (@media (prefers-color-scheme: dark)):
782 * UserInterface/Views/ConsoleMessageView.css:
783 (@media (prefers-color-scheme: dark)):
784 * UserInterface/Views/ConsolePrompt.css:
785 (@media (prefers-color-scheme: dark)):
786 * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
787 (@media (prefers-color-scheme: dark)):
788 * UserInterface/Views/DOMTreeOutline.css:
789 (@media (prefers-color-scheme: dark)):
790 * UserInterface/Views/DataGrid.css:
791 (@media (prefers-color-scheme: dark)):
792 * UserInterface/Views/DebuggerDashboardView.css:
793 (@media (prefers-color-scheme: dark)):
794 * UserInterface/Views/DebuggerSidebarPanel.css:
795 (@media (prefers-color-scheme: dark)):
796 * UserInterface/Views/DefaultDashboardView.css:
797 (@media (prefers-color-scheme: dark)):
798 * UserInterface/Views/DetailsSection.css:
799 (@media (prefers-color-scheme: dark)):
800 * UserInterface/Views/DividerNavigationItem.css:
801 (@media (prefers-color-scheme: dark)):
802 * UserInterface/Views/Editing.css:
803 (@media (prefers-color-scheme: dark)):
804 * UserInterface/Views/FindBanner.css:
805 (@media (prefers-color-scheme: dark)):
806 * UserInterface/Views/FontResourceContentView.css:
807 (@media (prefers-color-scheme: dark)):
808 * UserInterface/Views/FormattedValue.css:
809 (@media (prefers-color-scheme: dark)):
810 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
811 (@media (prefers-color-scheme: dark)):
812 * UserInterface/Views/HoverMenu.css:
813 (@media (prefers-color-scheme: dark)):
814 * UserInterface/Views/ImageResourceContentView.css:
815 (@media (prefers-color-scheme: dark)):
816 * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
817 (@media (prefers-color-scheme: dark)):
818 * UserInterface/Views/LogContentView.css:
819 (@media (prefers-color-scheme: dark)):
820
821 * UserInterface/Views/Main.css:
822 (:root):
823
824 (@media (prefers-color-scheme: dark)):
825 * UserInterface/Views/NetworkDetailView.css:
826 (@media (prefers-color-scheme: dark)):
827 * UserInterface/Views/NetworkTableContentView.css:
828 (@media (prefers-color-scheme: dark)):
829 * UserInterface/Views/NewTabContentView.css:
830 (@media (prefers-color-scheme: dark)):
831 * UserInterface/Views/ObjectPreviewView.css:
832 (@media (prefers-color-scheme: dark)):
833 * UserInterface/Views/ObjectTreePropertyTreeElement.css:
834 (@media (prefers-color-scheme: dark)):
835 * UserInterface/Views/OpenResourceDialog.css:
836 (@media (prefers-color-scheme: dark)):
837 * UserInterface/Views/ProgressView.css:
838 (@media (prefers-color-scheme: dark)):
839 * UserInterface/Views/QuickConsole.css:
840 (@media (prefers-color-scheme: dark)):
841 * UserInterface/Views/RecordingActionTreeElement.css:
842 (@media (prefers-color-scheme: dark)):
843 * UserInterface/Views/RecordingContentView.css:
844 (@media (prefers-color-scheme: dark)):
845 * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
846 (@media (prefers-color-scheme: dark)):
847 * UserInterface/Views/ResourceSecurityContentView.css:
848 (@media (prefers-color-scheme: dark)):
849 * UserInterface/Views/ResourceSizesContentView.css:
850 (@media (prefers-color-scheme: dark)):
851 * UserInterface/Views/ResourceTimingBreakdownView.css:
852 (@media (prefers-color-scheme: dark)):
853 * UserInterface/Views/ScopeBar.css:
854 (@media (prefers-color-scheme: dark)):
855 * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
856 (@media (prefers-color-scheme: dark)):
857 * UserInterface/Views/SearchBar.css:
858 (@media (prefers-color-scheme: dark)):
859 * UserInterface/Views/SearchSidebarPanel.css:
860 (@media (prefers-color-scheme: dark)):
861 * UserInterface/Views/SettingsTabContentView.css:
862 (@media (prefers-color-scheme: dark)):
863 * UserInterface/Views/ShaderProgramContentView.css:
864 (@media (prefers-color-scheme: dark)):
865 * UserInterface/Views/ShaderProgramTreeElement.css:
866 (@media (prefers-color-scheme: dark)):
867 * UserInterface/Views/SourceCodeTextEditor.css:
868 (@media (prefers-color-scheme: dark)):
869 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
870 (@media (prefers-color-scheme: dark)):
871 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
872 (@media (prefers-color-scheme: dark)):
873 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
874 (@media (prefers-color-scheme: dark)):
875 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
876 (@media (prefers-color-scheme: dark)):
877 * UserInterface/Views/TabBar.css:
878 (@media (prefers-color-scheme: dark)):
879 * UserInterface/Views/Table.css:
880 (@media (prefers-color-scheme: dark)):
881 * UserInterface/Views/TextEditor.css:
882 (@media (prefers-color-scheme: dark)):
883 * UserInterface/Views/TimelineDataGrid.css:
884 (@media (prefers-color-scheme: dark)):
885 * UserInterface/Views/TimelineIcons.css:
886 (@media (prefers-color-scheme: dark)):
887 * UserInterface/Views/TimelineOverview.css:
888 (@media (prefers-color-scheme: dark)):
889 * UserInterface/Views/Toolbar.css:
890 (@media (prefers-color-scheme: dark)):
891 * UserInterface/Views/TreeOutline.css:
892 (@media (prefers-color-scheme: dark)):
893 * UserInterface/Views/URLBreakpointPopover.css:
894 (@media (prefers-color-scheme: dark)):
895 * UserInterface/Views/Variables.css:
896 (@media (prefers-color-scheme: dark)):
897 * UserInterface/Views/WebSocketContentView.css:
898 (@media (prefers-color-scheme: dark)):
899
drousso@apple.com073a7b62019-01-07 22:18:59 +00009002019-01-07 Devin Rousso <drousso@apple.com>
901
drousso@apple.comc73e1f32019-01-07 23:22:10 +0000902 Web Inspector: Audit: run arrow shouldn't be visible when running tests
903 https://bugs.webkit.org/show_bug.cgi?id=192209
904 <rdar://problem/46423615>
905
906 Reviewed by Brian Burg.
907
908 * UserInterface/Views/AuditTreeElement.js:
909 (WI.AuditTreeElement.prototype.onattach):
910 (WI.AuditTreeElement.prototype.ondetach):
911 (WI.AuditTreeElement.prototype._updateLevel):
912 (WI.AuditTreeElement.prototype._handleAuditManagerTestScheduled): Added.
913 (WI.AuditTreeElement.prototype._handleAuditManagerTestCompleted): Added.
914 * UserInterface/Views/AuditTreeElement.css: Added.
915 (.tree-outline .item.audit:matches(.test-case, .test-group):not(.manager-active) > .status:hover > img): Added.
916 (.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.
917 (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img): Deleted.
918 (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status): Deleted.
919
9202019-01-07 Devin Rousso <drousso@apple.com>
921
drousso@apple.com20b43822019-01-07 22:41:29 +0000922 Web Inspector: extend XHR breakpoints to work with fetch
923 https://bugs.webkit.org/show_bug.cgi?id=185843
924 <rdar://problem/40431027>
925
926 Reviewed by Matt Baker.
927
928 * UserInterface/Controllers/DOMDebuggerManager.js:
929 (WI.DOMDebuggerManager):
930 (WI.DOMDebuggerManager.supportsURLBreakpoints): Added.
931 (WI.DOMDebuggerManager.prototype.get urlBreakpoints): Added.
932 (WI.DOMDebuggerManager.prototype.urlBreakpointForURL): Added.
933 (WI.DOMDebuggerManager.prototype.addURLBreakpoint): Added.
934 (WI.DOMDebuggerManager.prototype.removeURLBreakpoint): Added.
935 (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
936 (WI.DOMDebuggerManager.prototype._updateURLBreakpoint): Added.
937 (WI.DOMDebuggerManager.prototype._resolveURLBreakpoint): Added.
938 (WI.DOMDebuggerManager.prototype._saveURLBreakpoints): Added.
939 (WI.DOMDebuggerManager.prototype._urlBreakpointDisabledStateDidChange): Added.
940 (WI.DOMDebuggerManager.prototype.get xhrBreakpoints): Deleted.
941 (WI.DOMDebuggerManager.prototype.xhrBreakpointForURL): Deleted.
942 (WI.DOMDebuggerManager.prototype.addXHRBreakpoint): Deleted.
943 (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint): Deleted.
944 (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint.breakpointUpdated): Deleted.
945 (WI.DOMDebuggerManager.prototype._updateXHRBreakpoint): Deleted.
946 (WI.DOMDebuggerManager.prototype._resolveXHRBreakpoint): Deleted.
947 (WI.DOMDebuggerManager.prototype._saveXHRBreakpoints): Deleted.
948 (WI.DOMDebuggerManager.prototype._xhrBreakpointDisabledStateDidChange): Deleted.
949
950 * UserInterface/Controllers/DebuggerManager.js:
951 (WI.DebuggerManager.prototype._pauseReasonFromPayload):
952
953 * UserInterface/Views/DebuggerSidebarPanel.js:
954 (WI.DebuggerSidebarPanel):
955 (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
956 (WI.DebuggerSidebarPanel.prototype._addBreakpoint):
957 (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
958 (WI.DebuggerSidebarPanel.prototype._addTreeElement):
959 (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
960 (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked):
961
962 * UserInterface/Views/NavigationSidebarPanel.js:
963 (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
964
965 * UserInterface/Models/URLBreakpoint.js: Renamed from Source/WebInspectorUI/UserInterface/Models/XHRBreakpoint.js.
966 * UserInterface/Views/URLBreakpointPopover.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.css.
967 * UserInterface/Views/URLBreakpointPopover.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointPopover.js.
968 * UserInterface/Views/URLBreakpointTreeElement.css: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.css.
969 * UserInterface/Views/URLBreakpointTreeElement.js: Renamed from Source/WebInspectorUI/UserInterface/Views/XHRBreakpointTreeElement.js.
970
971 * UserInterface/Base/Setting.js:
972 (WI.Setting.migrateValue): Added.
973
974 * UserInterface/Main.html:
975 * UserInterface/Test.html:
976
977 * Localizations/en.lproj/localizedStrings.js:
978
9792019-01-07 Devin Rousso <drousso@apple.com>
980
drousso@apple.com073a7b62019-01-07 22:18:59 +0000981 Web Inspector: Network: show secure connection details per-request
982 https://bugs.webkit.org/show_bug.cgi?id=191539
983 <rdar://problem/45979891>
984
985 Reviewed by Joseph Pecoraro.
986
987 * UserInterface/Models/Resource.js:
988 (WI.Resource):
989 (WI.Resource.prototype.get security): Added.
990 (WI.Resource.prototype.updateForResponse):
991 (WI.Resource.prototype.updateWithMetrics):
992 (WI.Resource.prototype.get responseSecurity): Deleted.
993
994 * UserInterface/Views/ResourceSecurityContentView.js:
995 (WI.ResourceSecurityContentView):
996 (WI.ResourceSecurityContentView.prototype.initialLayout):
997 (WI.ResourceSecurityContentView.prototype.layout):
998 (WI.ResourceSecurityContentView.prototype._refreshConnectionSection): Added.
999 (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
1000 (WI.ResourceSecurityContentView.prototype._handleResourceMetricsDidChange): Added.
1001 * UserInterface/Views/ResourceSecurityContentView.css:
1002 (body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
1003 (@media (prefers-dark-interface) body[dir] .resource-security > section:matches(.connection, .certificate) > .details): Added.
1004 (body[dir] .resource-security > section.certificate > .details): Deleted.
1005 (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details): Deleted.
1006
1007 * Localizations/en.lproj/localizedStrings.js:
1008
nvasilyev@apple.com2a644aa2019-01-07 20:20:17 +000010092019-01-07 Nikita Vasilyev <nvasilyev@apple.com>
1010
1011 Web Inspector: "white" isn't recognized as a color keyword
1012 https://bugs.webkit.org/show_bug.cgi?id=193173
1013 <rdar://problem/47068595>
1014
1015 Reviewed by Joseph Pecoraro.
1016
1017 Attempt to parse "atom" token types as colors.
1018
1019 Display color picker only for color-aware properties. For instance,
1020 display it for "color: white" but not for "-apple-pay-button-style: white".
1021
1022 * UserInterface/Models/CSSKeywordCompletions.js:
1023 (addKeywordsForName):
1024 (WI.CSSKeywordCompletions.forProperty):
1025 (WI.CSSKeywordCompletions.isColorAwareProperty):
1026 * UserInterface/Views/SpreadsheetStyleProperty.js:
1027 (WI.SpreadsheetStyleProperty.prototype._renderValue):
1028 (WI.SpreadsheetStyleProperty.prototype._addColorTokens):
1029
commit-queue@webkit.org89c5f8d2019-01-05 01:23:52 +000010302019-01-04 Joseph Pecoraro <pecoraro@apple.com>
1031
1032 Web Inspector: subclasses of WI.ClusterContentView don't save/restore content views after the initial view
1033 https://bugs.webkit.org/show_bug.cgi?id=192451
1034 <rdar://problem/46800958>
1035
1036 Reviewed by Devin Rousso.
1037
1038 * UserInterface/Models/BackForwardEntry.js:
1039 (WI.BackForwardEntry.prototype.prepareToHide):
1040 * UserInterface/Views/ClusterContentView.js:
1041 (WI.ClusterContentView.prototype.get shouldSaveStateOnHide):
1042 * UserInterface/Views/ContentView.js:
1043 (WI.ContentView.prototype.get shouldSaveStateOnHide):
1044 Allow ClusterContentViews to save its state whenever its hidden,
1045 this means it can be properly restored to the last state it had
1046 instead of the initial state it was shown with.
1047
drousso@apple.comba007362019-01-05 00:28:57 +000010482019-01-04 Devin Rousso <drousso@apple.com>
1049
1050 Web Inspector: Audit: disable breakpoints when running Audit
1051 https://bugs.webkit.org/show_bug.cgi?id=193158
1052 <rdar://problem/47057083>
1053
1054 Reviewed by Joseph Pecoraro.
1055
1056 * UserInterface/Controllers/DebuggerManager.js:
1057 (WI.DebuggerManager):
1058 (WI.DebuggerManager.prototype._startDisablingBreakpointsTemporarily):
1059 (WI.DebuggerManager.prototype._stopDisablingBreakpointsTemporarily):
1060 (WI.DebuggerManager.prototype._handleAuditManagerTestScheduled): Added.
1061 (WI.DebuggerManager.prototype._handleAuditManagerTestCompleted): Added.
1062
1063 * UserInterface/Views/DebuggerSidebarPanel.js:
1064 (WI.DebuggerSidebarPanel.prototype._timelineCapturingWillStart):
1065 (WI.DebuggerSidebarPanel.prototype._timelineCapturingStopped):
1066 (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestScheduled): Added.
1067 (WI.DebuggerSidebarPanel.prototype._handleAuditManagerTestCompleted): Added.
1068 (WI.DebuggerSidebarPanel.prototype._updateBreakpointsDisabledBanner):
1069 * UserInterface/Views/DebuggerSidebarPanel.css:
1070 (.sidebar > .panel.navigation.debugger .warning-banner + .warning-banner): Added.
1071
1072 * UserInterface/Base/Main.js:
1073 (WI.loaded):
1074 * UserInterface/Test/Test.js:
1075 (WI.loaded):
1076 Move `WI.auditManager` higher in the managers list so that it can be used in
1077 `WI.DebuggerManager`'s constructor.
1078
1079 * Localizations/en.lproj/localizedStrings.js:
1080
commit-queue@webkit.org14a38762019-01-04 20:29:24 +000010812019-01-04 Joseph Pecoraro <pecoraro@apple.com>
1082
commit-queue@webkit.org23589572019-01-04 21:27:34 +00001083 Web Inspector: Add a Setting Toggle for Source Maps
1084 https://bugs.webkit.org/show_bug.cgi?id=193148
1085
1086 Reviewed by Devin Rousso.
1087
1088 * UserInterface/Controllers/NetworkManager.js:
1089 (WI.NetworkManager.prototype.downloadSourceMap):
1090 Don't download source maps if the setting is disabled.
1091
1092 * UserInterface/Base/Setting.js:
1093 * UserInterface/Views/SettingsTabContentView.js:
1094 (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
1095 Settings toggle for source maps. Enabled by default.
1096
1097 * Localizations/en.lproj/localizedStrings.js:
1098
10992019-01-04 Joseph Pecoraro <pecoraro@apple.com>
1100
commit-queue@webkit.org14a38762019-01-04 20:29:24 +00001101 Web Inspector: Include `globalThis` in default JavaScript completions
1102 https://bugs.webkit.org/show_bug.cgi?id=193147
1103
1104 Reviewed by Devin Rousso.
1105
1106 * UserInterface/Controllers/CodeMirrorCompletionController.js:
1107 Add `globalThis` which is a new global value.
1108
drousso@apple.comf5630702019-01-03 21:58:23 +000011092019-01-03 Devin Rousso <drousso@apple.com>
1110
1111 Web Inspector: conic-gradient color picker doesn't accurately show color when saturation value is not 100%
1112 https://bugs.webkit.org/show_bug.cgi?id=192729
1113 <rdar://problem/46746815>
1114
1115 Reviewed by Joseph Pecoraro.
1116
1117 Rework `WI.ColorWheel` to use similar canvas drawing logic as `WI.LegacyColorWheel` so that
1118 it's able to adjust the saturation value as the pixels gets closer to the center.
1119
1120 * UserInterface/Models/Color.js:
1121 (WI.Color.rgb2hsl): Added.
1122 (WI.Color.hsl2rgb): Added.
1123 (WI.Color.cmyk2rgb):
1124 (WI.Color.prototype.isKeyword):
1125 (WI.Color.prototype._toRGBString):
1126 (WI.Color.prototype._toRGBAString):
1127 (WI.Color.prototype._toHSLString):
1128 (WI.Color.prototype._toHSLAString):
1129 (WI.Color.prototype._rgbaToHSLA):
1130 (WI.Color.prototype._hslaToRGBA):
1131 (WI.Color.rgb2hsv): Deleted.
1132 (WI.Color.hsv2rgb): Deleted.
1133 (WI.Color.prototype._rgbToHSL): Deleted.
1134 (WI.Color.prototype._hslToRGB): Deleted.
1135 Adjust the conversion functions of `WI.Color` to be more accurate.
1136
1137 * UserInterface/Views/ColorWheel.js:
1138 (WI.ColorWheel):
1139 (WI.ColorWheel.prototype.set dimension):
1140 (WI.ColorWheel.prototype.set brightness):
1141 (WI.ColorWheel.prototype.get tintedColor):
1142 (WI.ColorWheel.prototype.set tintedColor):
1143 (WI.ColorWheel.prototype._updateColorForMouseEvent):
1144 (WI.ColorWheel.prototype._updateCanvas): Added.
1145 (WI.ColorWheel.prototype._updateGradient): Deleted.
1146 * UserInterface/Views/ColorWheel.css:
1147 (.color-wheel > canvas): Added.
1148 (.color-wheel > .gradient): Deleted.
1149
1150 * UserInterface/Views/ColorPicker.js:
1151 (WI.ColorPicker):
1152 (WI.ColorPicker.prototype.set color):
1153 (WI.ColorPicker.prototype.sliderValueDidChange):
1154 (WI.ColorPicker.prototype._updateSliders):
1155 (WI.ColorPicker.prototype._showColorComponentInputs):
1156 (WI.ColorPicker.supportsConicGradient): Deleted.
1157
1158 * UserInterface/Main.html:
1159
1160 * UserInterface/Views/LegacyColorWheel.js: Removed.
1161
nvasilyev@apple.com0aaf6f12019-01-03 04:05:04 +000011622019-01-02 Nikita Vasilyev <nvasilyev@apple.com>
1163
nvasilyev@apple.com482ac3e2019-01-03 07:18:32 +00001164 Web Inspector: Styles: selection lost when inspector is blurred
1165 https://bugs.webkit.org/show_bug.cgi?id=192124
1166 <rdar://problem/46800965>
1167
1168 Reviewed by Devin Rousso.
1169
1170 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1171 (body:matches(.window-docked-inactive, .window-inactive) .spreadsheet-style-declaration-editor .property.selected):
1172 Selection should be gray when Web Inspector window isn't focused.
1173
1174 * UserInterface/Views/SpreadsheetStyleProperty.js:
1175
11762019-01-02 Nikita Vasilyev <nvasilyev@apple.com>
1177
nvasilyev@apple.com0aaf6f12019-01-03 04:05:04 +00001178 Web Inspector: Styles: it shouldn't be possible to delete read-only properties
1179 https://bugs.webkit.org/show_bug.cgi?id=193099
1180 <rdar://problem/47016335>
1181
1182 Reviewed by Devin Rousso.
1183
1184 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1185 (WI.SpreadsheetCSSStyleDeclarationEditor):
1186 Drive-by: Forward Delete should work the same way as Delete (Backspace).
1187
webkit@devinrousso.coma247fcb2019-01-03 03:48:19 +000011882019-01-02 Devin Rousso <webkit@devinrousso.com>
1189
1190 Web Inspector: Implement `queryObjects` Command Line API
1191 https://bugs.webkit.org/show_bug.cgi?id=176766
1192 <rdar://problem/34890689>
1193
1194 Reviewed by Joseph Pecoraro.
1195
1196 * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
1197 (WI.JavaScriptRuntimeCompletionProvider.completionControllerCompletionsNeeded.receivedPropertyNames):
1198 Add `queryObjects` to the list of command line functions.
1199
drousso@apple.com7a217f32018-12-22 00:39:04 +000012002018-12-21 Devin Rousso <drousso@apple.com>
1201
1202 Web Inspector: Styles Redesign: remove unused CSS style icons
1203 https://bugs.webkit.org/show_bug.cgi?id=192999
1204 <rdar://problem/46912094>
1205
1206 Reviewed by Matt Baker.
1207
1208 * UserInterface/Main.html:
1209 * UserInterface/Views/StyleRuleIcons.css: Removed.
1210 * UserInterface/Images/StyleRule.svg: Removed.
1211 * UserInterface/Images/StyleRuleInheritedElement.svg: Removed.
1212 * UserInterface/Images/StyleRulePseudoElement.svg: Removed.
1213
1214 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
1215 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
1216
nvasilyev@apple.com66d75da2018-12-22 00:16:20 +000012172018-12-21 Nikita Vasilyev <nvasilyev@apple.com>
1218
1219 Web Inspector: Styles: editing focus lost when inspector is blurred
1220 https://bugs.webkit.org/show_bug.cgi?id=192123
1221 <rdar://problem/46800966>
1222
1223 Reviewed by Devin Rousso.
1224
1225 * UserInterface/Views/SpreadsheetSelectorField.js:
1226 (WI.SpreadsheetSelectorField.prototype._handleBlur):
1227 * UserInterface/Views/SpreadsheetTextField.js:
1228 (WI.SpreadsheetTextField.prototype._handleBlur):
1229
drousso@apple.comcadc3d62018-12-21 22:27:50 +000012302018-12-21 Devin Rousso <drousso@apple.com>
1231
drousso@apple.comc1b06c62018-12-21 23:10:11 +00001232 Web Inspector: Settings: experimental setting editors are misaligned in other locales
1233 https://bugs.webkit.org/show_bug.cgi?id=192971
1234 <rdar://problem/46718451>
1235
1236 Reviewed by Joseph Pecoraro.
1237
1238 * UserInterface/Views/SettingsTabContentView.css:
1239 (.content-view.settings > .settings-view > .container):
1240 (.content-view.settings > .settings-view > .container > .title):
1241
12422018-12-21 Devin Rousso <drousso@apple.com>
1243
drousso@apple.comcadc3d62018-12-21 22:27:50 +00001244 Web Inspector: update scroll position when revealing a virtualized WI.DataGridNode
1245 https://bugs.webkit.org/show_bug.cgi?id=192992
1246 <rdar://problem/46886427>
1247
1248 Reviewed by Joseph Pecoraro.
1249
1250 When `reveal`ing a `WI.DataGridNode`, if it is not currently in the DOM tree (e.g. it's been
1251 virtualized by it's owner `WI.DataGrid`), we need to scroll to it's position so that it gets
1252 added to the DOM tree before it can be revealed/selected.
1253
1254 * UserInterface/Views/DataGrid.js:
1255 (WI.DataGrid.prototype.layout):
1256 (WI.DataGrid.prototype.updateVisibleRows):
1257 (WI.DataGrid.prototype._updateVisibleRows): Deleted.
1258
1259 * UserInterface/Views/DataGridNode.js:
1260 (WI.DataGridNode.prototype.reveal):
1261
nvasilyev@apple.comdd3297c2018-12-21 01:29:54 +000012622018-12-20 Nikita Vasilyev <nvasilyev@apple.com>
1263
nvasilyev@apple.combd9baf32018-12-21 01:44:07 +00001264 Web Inspector: Dark Mode: Type profiler popovers have black text on dark background
1265 https://bugs.webkit.org/show_bug.cgi?id=192916
1266 <rdar://problem/46863518>
1267
1268 Reviewed by Devin Rousso.
1269
1270 * UserInterface/Views/SourceCodeTextEditor.css:
1271 (.popover .debugger-popover-content > .body):
1272 * UserInterface/Views/TypeTreeElement.css:
1273 (.item.type-tree-element.prototype):
1274 (.item.type-tree-element.prototype:hover,):
1275 * UserInterface/Views/TypeTreeView.css:
1276 (.type-tree):
1277 * UserInterface/Views/Variables.css:
1278 (:root):
1279
12802018-12-20 Nikita Vasilyev <nvasilyev@apple.com>
1281
nvasilyev@apple.comdd3297c2018-12-21 01:29:54 +00001282 Web Inspector: Styles: Pressing Esc when editing name/value should select entire property
1283 https://bugs.webkit.org/show_bug.cgi?id=192919
1284
1285 Reviewed by Devin Rousso.
1286
1287 - Esc still hides the completion popover.
1288 - Esc still discards changes.
1289 - When there's no completion popover, Esc selects outer scope.
1290 I.e., it goes from editing name/value to selecting the entire property.
1291 - Pressing Esc for newly added properties discards those properties.
1292
1293 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1294 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
1295 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyDidPressEsc):
1296 * UserInterface/Views/SpreadsheetStyleProperty.js:
1297 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidPressEsc):
1298 * UserInterface/Views/SpreadsheetTextField.js:
1299 (WI.SpreadsheetTextField.prototype._discardChange):
1300 (WI.SpreadsheetTextField.prototype._handleKeyDown):
1301
commit-queue@webkit.orgaef3eed2018-12-20 20:05:34 +000013022018-12-20 Joseph Pecoraro <pecoraro@apple.com>
1303
commit-queue@webkit.org91dea982018-12-21 00:58:45 +00001304 Web Inspector: Charles Proxy errors opening har files exported from Safari (invalid startedDateTime)
1305 https://bugs.webkit.org/show_bug.cgi?id=192959
1306 <rdar://problem/46863411>
1307
1308 Reviewed by Brian Burg.
1309
1310 * UserInterface/Views/NetworkTableContentView.js:
1311 (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
1312 (WI.NetworkTableContentView.prototype._updateExportButton):
1313 (WI.NetworkTableContentView.prototype._canExportHAR):
1314 Disallow HAR export if we don't have load data, such as the requestSentDate for
1315 the main resource or sub-resources.
1316
1317 (WI.NetworkTableContentView.prototype._HARResources):
1318 Only export resources that have load data.
1319
13202018-12-20 Joseph Pecoraro <pecoraro@apple.com>
1321
joepeck@webkit.org673205b2018-12-20 23:15:56 +00001322 Web Inspector: Autoformat doesn't work on icloud.com (javascript-packed.js)
1323 https://bugs.webkit.org/show_bug.cgi?id=192946
1324 <rdar://problem/42546126>
1325
1326 Rubber-stamped by Devin Rousso.
1327
1328 * UserInterface/Base/Utilities.js:
1329 (whitespaceRatio):
1330 (isTextLikelyMinified):
1331 Check the first 2500 and the last 2500 characters whitespace ratio.
1332 If either is below 20% then treat as minified.
1333
13342018-12-20 Joseph Pecoraro <pecoraro@apple.com>
1335
commit-queue@webkit.org1bf25702018-12-20 20:08:27 +00001336 ITMLKit Inspector: Elements tab does not show DOM Tree
1337 https://bugs.webkit.org/show_bug.cgi?id=192910
1338 <rdar://problem/46680585>
1339
1340 Reviewed by Brian Burg.
1341
1342 * UserInterface/Protocol/Connection.js:
1343 (InspectorBackend.Connection.prototype._dispatchEvent):
1344 Better logging for errors.
1345
1346 * UserInterface/Base/Main.js:
1347 * UserInterface/Controllers/AppController.js:
1348 (WI.AppController.prototype.activateExtraDomains):
1349 Let Targets get a chance to activate extra domains.
1350 Perform a little more work in these cases.
1351
1352 * UserInterface/Protocol/Target.js:
1353 (WI.Target):
1354 (WI.Target.prototype.activateExtraDomain):
1355 Expose agents for domains that are active.
1356 Expose agents for extra domains when they are activated.
1357
13582018-12-20 Joseph Pecoraro <pecoraro@apple.com>
1359
commit-queue@webkit.orgaef3eed2018-12-20 20:05:34 +00001360 ITMLKit Inspector: Computed Style Box Model section throws exceptions
1361 https://bugs.webkit.org/show_bug.cgi?id=192911
1362 <rdar://problem/46861112>
1363
1364 Reviewed by Matt Baker.
1365
1366 * UserInterface/Views/BoxModelDetailsSectionRow.js:
1367 (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createBoxPartElement):
1368 (WI.BoxModelDetailsSectionRow.prototype._updateMetrics.createContentAreaElement):
1369 (WI.BoxModelDetailsSectionRow.prototype._updateMetrics):
1370 ITMLKit doesn't always provide a display/position/width/height etc properties.
1371 Protect against this, and just show an empty message in the box model section
1372 if those properties do not exist.
1373
drousso@apple.com8b6993e2018-12-20 17:37:56 +000013742018-12-20 Devin Rousso <drousso@apple.com>
1375
drousso@apple.comcce34112018-12-20 18:29:45 +00001376 Web Inspector: UIString should take an optional key and description to aid localization
1377 https://bugs.webkit.org/show_bug.cgi?id=153962
1378 <rdar://problem/24542505>
1379
1380 Reviewed by Brian Burg.
1381
1382 * UserInterface/Base/LoadLocalizedStrings.js:
1383 (WI.UIString):
1384
1385 * UserInterface/Test/Test.js:
1386 (WI.UIString):
1387
1388 * UserInterface/Views/AuditTestGroupContentView.js:
1389 (WI.AuditTestGroupContentView.prototype.initialLayout):
1390
13912018-12-20 Devin Rousso <drousso@apple.com>
1392
drousso@apple.com802506a2018-12-20 18:15:46 +00001393 Web Inspector: Audits: don't cache default audits
1394 https://bugs.webkit.org/show_bug.cgi?id=192918
1395 <rdar://problem/46626543>
1396
1397 Reviewed by Brian Burg.
1398
1399 Instead of adding the default audits to the "audits" `WI.ObjectStore`, which preserves them
1400 across WebInspector sessions, load them every time WebInspector is opened (unless there are
1401 existing audits) so that the localized strings are able to respond to locale changes.
1402
1403 * UserInterface/Controllers/AuditManager.js:
1404 (WI.AuditManager.prototype.removeTest):
1405 (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
1406
14072018-12-20 Devin Rousso <drousso@apple.com>
1408
drousso@apple.com8b6993e2018-12-20 17:37:56 +00001409 Web Inspector: Dark Mode: unreadable background color for tables containing object previews
1410 https://bugs.webkit.org/show_bug.cgi?id=192887
1411 <rdar://problem/46855270>
1412
1413 Reviewed by Brian Burg.
1414
1415 * UserInterface/Views/LogContentView.css:
1416 (.console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
1417 (@media (prefers-dark-interface) .console-item .data-grid tr.selected): Added.
1418 (@media (prefers-dark-interface) .console-messages:focus .console-item.selected .data-grid tr.selected): Added.
1419 (@media (prefers-dark-interface) .console-messages:focus .console-item .data-grid tr.selected td:not(:last-child)): Added.
1420
1421 * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
1422 (.content-view.indexed-database-object-store > .data-grid tr.selected):
1423 (.content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
1424 (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid tr.selected): Added.
1425 (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected): Added.
1426 (@media (prefers-dark-interface) .content-view.indexed-database-object-store > .data-grid:focus tr.selected td:not(:last-child)): Added.
1427
drousso@apple.comd3cc9f72018-12-20 06:48:32 +000014282018-12-19 Devin Rousso <drousso@apple.com>
1429
1430 Web Inspector: Audit: fix descriptions for default tests
1431 https://bugs.webkit.org/show_bug.cgi?id=192764
1432 <rdar://problem/46729437>
1433
1434 Reviewed by Matt Baker.
1435
1436 * UserInterface/Controllers/AuditManager.js:
1437 (WI.AuditManager.prototype.addDefaultTestsIfNeeded):
1438
1439 * Localizations/en.lproj/localizedStrings.js:
1440
nvasilyev@apple.com785037d2018-12-20 06:21:06 +000014412018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1442
nvasilyev@apple.comeebe5162018-12-20 06:39:19 +00001443 Web Inspector: "E" icon on debugger dashboard is too close to current function name
1444 https://bugs.webkit.org/show_bug.cgi?id=192915
1445
1446 Reviewed by Matt Baker.
1447
1448 * UserInterface/Views/DebuggerDashboardView.css:
1449 (.dashboard.debugger > .location):
1450 (body[dir=ltr] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
1451 (body[dir=rtl] .dashboard.debugger > .location :matches(.function-icon, .event-listener-icon)):
1452 (.dashboard.debugger > .location .function-icon): Deleted.
1453 (body[dir=ltr] .dashboard.debugger > .location .function-icon): Deleted.
1454 (body[dir=rtl] .dashboard.debugger > .location .function-icon): Deleted.
1455
14562018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1457
nvasilyev@apple.com785037d2018-12-20 06:21:06 +00001458 Web Inspector: Dark Mode: ThreadTreeElement status icon is hard to see when hovered
1459 https://bugs.webkit.org/show_bug.cgi?id=192097
1460 <rdar://problem/46318421>
1461
1462 Reviewed by Matt Baker.
1463
1464 * UserInterface/Views/ThreadTreeElement.css:
1465 (.tree-outline > .item.thread .status-button.resume):
1466 (.tree-outline > .item.thread .status-button.resume:active):
1467
drousso@apple.com36d7cfc2018-12-20 03:56:27 +000014682018-12-19 Devin Rousso <drousso@apple.com>
1469
drousso@apple.comed164f22018-12-20 04:00:01 +00001470 Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'effectiveDOMNode.enabledPseudoClasses')
1471 https://bugs.webkit.org/show_bug.cgi?id=192783
1472
1473 Reviewed by Joseph Pecoraro.
1474
1475 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
1476 (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
1477 (WI.GeneralStyleDetailsSidebarPanel.prototype._updatePseudoClassCheckboxes):
1478
14792018-12-19 Devin Rousso <drousso@apple.com>
1480
drousso@apple.come972bdb2018-12-20 03:57:10 +00001481 Web Inspector: REGRESSION (r237195): Timelines: selecting a rendering frame row moves the time selection
1482 https://bugs.webkit.org/show_bug.cgi?id=192773
1483 <rdar://problem/46782446>
1484
1485 Reviewed by Joseph Pecoraro.
1486
1487 * UserInterface/Views/TimelineOverview.js:
1488 (WI.TimelineOverview.prototype._recordSelected):
1489 The Frames timeline uses `frameIndex` instead of `startTime`/`endTime`, so when trying to
1490 ensure that the selected record is within the filtered range, use `frameIndex` instead.
1491 The associated `WI.TimelineRuler` will already be using an index-based approach for
1492 selection, so this will match.
1493
14942018-12-19 Devin Rousso <drousso@apple.com>
1495
drousso@apple.com36d7cfc2018-12-20 03:56:27 +00001496 Web Inspector: Canvas: the recording auto-capture input shouldn't start focused
1497 https://bugs.webkit.org/show_bug.cgi?id=192454
1498
1499 Reviewed by Joseph Pecoraro.
1500
1501 * UserInterface/Views/CanvasOverviewContentView.js:
1502 (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel):
1503 (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
1504
nvasilyev@apple.com5a73cf42018-12-20 01:22:39 +000015052018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1506
1507 Web Inspector: Styles: shift-clicking a color-swatch to change formats starts editing the color
1508 https://bugs.webkit.org/show_bug.cgi?id=192784
1509 <rdar://problem/46801028>
1510
1511 Reviewed by Devin Rousso.
1512
1513 * UserInterface/Views/SpreadsheetStyleProperty.js:
1514 (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
1515
mattbaker@apple.com2bd73bc2018-12-20 00:46:10 +000015162018-12-19 Matt Baker <mattbaker@apple.com>
1517
1518 Web Inspector: Elements tab: arrow key after undoing a DOM node delete selects the wrong element
1519 https://bugs.webkit.org/show_bug.cgi?id=192871
1520 <rdar://problem/46849060>
1521
1522 Reviewed by Devin Rousso.
1523
1524 Undoing a DOM node removal reinserts the node into the DOMTreeOutline.
1525 When the reinserted node precedes the selected node in the tree, the
1526 SelectionController should update `_lastSelectedIndex`.
1527
1528 * UserInterface/Controllers/SelectionController.js:
1529 (WI.SelectionController.prototype.didInsertItem):
1530
drousso@apple.com0e6a4872018-12-20 00:31:27 +000015312018-12-19 Devin Rousso <drousso@apple.com>
1532
1533 Web Inspector: Audit: provide localization support for % pass display
1534 https://bugs.webkit.org/show_bug.cgi?id=192870
1535 <rdar://problem/46779245>
1536
1537 Reviewed by Brian Burg.
1538
1539 * UserInterface/Views/AuditTestGroupContentView.js:
1540 (WI.AuditTestGroupContentView.prototype.initialLayout):
1541 (WI.AuditTestGroupContentView.prototype.layout):
1542 * UserInterface/Views/AuditTestGroupContentView.css:
1543 (.content-view.audit-test-group > header > .percentage-pass):
1544 (.content-view.audit-test-group > header > .percentage-pass > span): Added.
1545 (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass): Added.
1546 (@media (prefers-dark-interface) .content-view.audit-test-group > header > .percentage-pass > span): Added.
1547 (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after): Deleted.
1548
1549 * Localizations/en.lproj/localizedStrings.js:
1550
nvasilyev@apple.com94708322018-12-19 23:28:58 +000015512018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1552
1553 Web Inspector: Computed: make UI more usable when the panel is narrow
1554 https://bugs.webkit.org/show_bug.cgi?id=192578
1555 <rdar://problem/46615753>
1556
1557 Reviewed by Devin Rousso.
1558
1559 * UserInterface/Views/ComputedStyleSection.css:
1560 (.computed-style-section .computed-property-item .property-traces):
1561 (.computed-style-section .computed-property-item.expanded .disclosure-button):
1562 (.computed-style-section .computed-property-item .property-trace-item):
1563 (.computed-style-section .computed-property-item .property-trace-item::before):
1564 (.computed-style-section .computed-property-item .property):
1565 (.computed-style-section .computed-property-item .property-trace-item .selector):
1566 Allow CSS property values and selectors to take more than one line.
1567
1568 (.computed-style-section .property-trace-item .property .name,):
1569 * UserInterface/Views/ComputedStyleSection.js:
1570 (WI.ComputedStyleSection.prototype._createTrace):
1571 * UserInterface/Views/SpreadsheetStyleProperty.js:
1572 (WI.SpreadsheetStyleProperty.prototype.update):
1573
simon.fraser@apple.comd8828472018-12-19 23:17:31 +000015742018-12-18 Simon Fraser <simon.fraser@apple.com>
1575
1576 Web Inspector: Timelines: correctly label Intersection Observer callbacks
1577 https://bugs.webkit.org/show_bug.cgi?id=192669
1578 <rdar://problem/46702490>
1579
1580 Reviewed by Joseph Pecoraro.
1581
1582 Add InspectorInstrumentation::willFireObserverCallback() and use it to wrap calls
1583 to Intersection Observer, Performance Observer and Mutation Observer callbacks so
1584 that they get correctly labeled in the Inspector timeline.
1585
1586 * Localizations/en.lproj/localizedStrings.js:
1587 * UserInterface/Controllers/TimelineManager.js:
1588 (WI.TimelineManager.prototype._processRecord):
1589 * UserInterface/Models/ScriptTimelineRecord.js:
1590 (WI.ScriptTimelineRecord.EventType.displayName):
1591 * UserInterface/Views/TimelineTabContentView.js:
1592 (WI.TimelineTabContentView.iconClassNameForRecord):
1593
drousso@apple.com78d8c5e2018-12-19 22:09:22 +000015942018-12-19 Devin Rousso <drousso@apple.com>
1595
1596 Web Inspector: Audit: "Clear Filters" button gets clipped when window is vertically small
1597 https://bugs.webkit.org/show_bug.cgi?id=192868
1598 <rdar://problem/46780400>
1599
1600 Reviewed by Matt Baker.
1601
1602 * UserInterface/Views/Main.css:
1603 (.message-text-view):
1604
nvasilyev@apple.comf08294f2018-12-19 21:08:53 +000016052018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1606
nvasilyev@apple.comfaf0a522018-12-19 21:09:43 +00001607 Web Inspector: Dark Mode: selected text is too light when Inspector window is inactive
1608 https://bugs.webkit.org/show_bug.cgi?id=190542
1609 <rdar://problem/45238712>
1610
1611 Reviewed by Devin Rousso.
1612
1613 * UserInterface/Views/CodeMirrorOverrides.css:
1614 (.CodeMirror .CodeMirror-selected):
1615
16162018-12-19 Nikita Vasilyev <nvasilyev@apple.com>
1617
nvasilyev@apple.comf08294f2018-12-19 21:08:53 +00001618 Web Inspector: column sort controls in Layers tab sidebar don't render correctly in dark mode
1619 https://bugs.webkit.org/show_bug.cgi?id=192845
1620
1621 Reviewed by Devin Rousso.
1622
1623 * UserInterface/Views/DataGrid.css:
1624 (@media (prefers-dark-interface)):
1625 (.data-grid th.sortable:active):
1626 Drive-by: replace obnoxiously light background of the pressed header with a more subtle gray.
1627
1628 (.data-grid th.sort-ascending > div:first-child::after, .data-grid th.sort-descending > div:first-child::after):
1629 Invert colors of the arrow glyph.
1630
drousso@apple.com49d4b7e2018-12-18 19:43:55 +000016312018-12-18 Devin Rousso <drousso@apple.com>
1632
1633 Web Inspector: Layers: increase default column width for other localizations
1634 https://bugs.webkit.org/show_bug.cgi?id=192812
1635 <rdar://problem/46628625>
1636
1637 Reviewed by Brian Burg.
1638
1639 * UserInterface/Views/LayerDetailsSidebarPanel.js:
1640 (WI.LayerDetailsSidebarPanel.prototype._buildDataGrid):
1641 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
1642 (WI.LayerTreeDetailsSidebarPanel.prototype._buildDataGridSection):
1643
joepeck@webkit.org7626fce2018-12-18 19:18:44 +000016442018-12-18 Joseph Pecoraro <pecoraro@apple.com>
1645
1646 Web Inspector: m3u8 content not shown, it should be text
1647 https://bugs.webkit.org/show_bug.cgi?id=192731
1648 <rdar://problem/46747728>
1649
1650 Reviewed by Devin Rousso.
1651
1652 * UserInterface/Base/MIMETypeUtilities.js:
1653 (WI.shouldTreatMIMETypeAsText):
1654 Support m3u8/m3u files as text.
1655
drousso@apple.comdfc917c2018-12-17 21:15:39 +000016562018-12-17 Devin Rousso <drousso@apple.com>
1657
drousso@apple.com1d45b962018-12-18 02:45:05 +00001658 Web Inspector: Canvas: path view is misaligned
1659 https://bugs.webkit.org/show_bug.cgi?id=192761
1660
1661 Reviewed by Joseph Pecoraro.
1662
1663 * UserInterface/Views/RecordingContentView.css:
1664 (.content-view:not(.tab).recording :matches(img, canvas)):
1665 (.content-view:not(.tab).recording canvas.path):
1666
16672018-12-17 Devin Rousso <drousso@apple.com>
1668
drousso@apple.come2d4e142018-12-17 21:16:30 +00001669 Web Inspector: Audit: add plural result strings
1670 https://bugs.webkit.org/show_bug.cgi?id=192769
1671 <rdar://problem/46628680>
1672
1673 Reviewed by Brian Burg.
1674
1675 * UserInterface/Views/AuditTestContentView.js:
1676 (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder):
1677
1678 * UserInterface/Views/AuditTestGroupContentView.js:
1679 (WI.AuditTestGroupContentView.prototype.layout):
1680
1681 * Localizations/en.lproj/localizedStrings.js:
1682
16832018-12-17 Devin Rousso <drousso@apple.com>
1684
drousso@apple.comdfc917c2018-12-17 21:15:39 +00001685 Web Inspector: Settings: add singular "space" UIString
1686 https://bugs.webkit.org/show_bug.cgi?id=192766
1687 <rdar://problem/46776948>
1688
1689 Reviewed by Brian Burg.
1690
1691 * UserInterface/Views/SettingEditor.js:
1692 (WI.SettingEditor):
1693 (WI.SettingEditor.prototype.get label):
1694 (WI.SettingEditor.prototype.set label): Added.
1695
1696 * UserInterface/Views/SettingsTabContentView.js:
1697 (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
1698 (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting): Added.
1699 (WI.SettingsTabContentView.prototype._createGeneralSettingsView.addSpacesSetting.updateLabel): Added.
1700
1701 * Localizations/en.lproj/localizedStrings.js:
1702
nvasilyev@apple.com77eba412018-12-15 10:03:19 +000017032018-12-15 Nikita Vasilyev <nvasilyev@apple.com>
1704
1705 Web Inspector: Styles: toggling selected properties may cause data corruption
1706 https://bugs.webkit.org/show_bug.cgi?id=192396
1707 <rdar://problem/46478383>
1708
1709 Reviewed by Devin Rousso.
1710
1711 Uncommenting a property after a commented out property used to insert an unnecessary semicolon,
1712 and not updating ranges of the following properties.
1713
1714 For example:
1715
1716 /* color: red; */
1717 /* font-size: 12px */
1718
1719 Uncommenting `font-size` would result in something like this:
1720
1721 /* color: red; */; font-size: 12px
1722 ^
1723 unnecessary semicolon
1724
1725 Now the semicolon doesn't get inserted and the white space is preserved better:
1726
1727 /* color: red; */
1728 font-size: 12px
1729
1730 * UserInterface/Models/CSSProperty.js:
1731 (WI.CSSProperty.prototype._updateOwnerStyleText):
1732 (WI.CSSProperty.prototype._appendSemicolonIfNeeded): Removed.
1733 (WI.CSSProperty.prototype._prependSemicolonIfNeeded): Added.
1734
1735 * UserInterface/Views/SpreadsheetStyleProperty.js:
1736 (WI.SpreadsheetStyleProperty.prototype.remove):
1737 (WI.SpreadsheetStyleProperty.prototype.update):
1738 (WI.SpreadsheetStyleProperty.prototype._handleNameChange):
1739 (WI.SpreadsheetStyleProperty.prototype._handleValueChange):
1740 Style declaration should be locked while editing. Add asserts to ensure this.
1741
mattbaker@apple.come01e54f2018-12-14 20:41:31 +000017422018-12-14 Matt Baker <mattbaker@apple.com>
1743
mattbaker@apple.com4b62826a2018-12-15 03:34:54 +00001744 Web Inspector: REGRESSION(r238599): Uncaught Exception: TypeError: null is not an object (evaluating 'treeElement.listItemElement.classList')
1745 https://bugs.webkit.org/show_bug.cgi?id=192090
1746 <rdar://problem/46318614>
1747
1748 Reviewed by Devin Rousso.
1749
1750 * UserInterface/Views/TreeOutline.js:
1751 (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
1752 Check that `listItemElement` is valid before accessing it to update class
1753 names. The selection can change before the TreeElement has been attached.
1754
17552018-12-14 Matt Baker <mattbaker@apple.com>
1756
mattbaker@apple.come01e54f2018-12-14 20:41:31 +00001757 Web Inspector: Cookies view should use model objects instead of raw payload data
1758 https://bugs.webkit.org/show_bug.cgi?id=189533
1759 <rdar://problem/44364183>
1760
1761 Reviewed by Joseph Pecoraro and Devin Rousso.
1762
1763 * UserInterface/Models/Cookie.js:
1764 (WI.Cookie):
1765 (WI.Cookie.fromPayload):
1766 (WI.Cookie.parseSetCookieResponseHeader):
1767 (WI.Cookie.prototype.get type):
1768 (WI.Cookie.prototype.get name):
1769 (WI.Cookie.prototype.get value):
1770 (WI.Cookie.prototype.get header):
1771 (WI.Cookie.prototype.get expires):
1772 (WI.Cookie.prototype.get maxAge):
1773 (WI.Cookie.prototype.get path):
1774 (WI.Cookie.prototype.get domain):
1775 (WI.Cookie.prototype.get secure):
1776 (WI.Cookie.prototype.get httpOnly):
1777 (WI.Cookie.prototype.get sameSite):
1778 (WI.Cookie.prototype.get size):
1779 (WI.Cookie.prototype.get url):
1780 (WI.Cookie.prototype.expirationDate):
1781 Cleanup Cookie object; add pubic getters for data, `url` property,
1782 static `fromPayload` method, and calculate `_size` if missing.
1783
1784 * UserInterface/Views/CookieStorageContentView.js:
1785 (WI.CookieStorageContentView.prototype.tableDidRemoveRows):
1786 (WI.CookieStorageContentView.prototype._reloadCookies):
1787 Create Cookie objects from the payload instead of using raw payload data.
1788
drousso@apple.com51f344f22018-12-13 22:31:25 +000017892018-12-13 Devin Rousso <drousso@apple.com>
1790
drousso@apple.com52652272018-12-13 23:20:35 +00001791 Web Inspector: remove DOM.BackendNodeId and associated commands/events
1792 https://bugs.webkit.org/show_bug.cgi?id=192478
1793
1794 Reviewed by Matt Baker.
1795
1796 * Versions/Inspector-iOS-8.0.json:
1797 * Versions/Inspector-iOS-9.0.json:
1798 * Versions/Inspector-iOS-9.3.json:
1799 * Versions/Inspector-iOS-10.0.json:
1800 * Versions/Inspector-iOS-10.3.json:
1801 * Versions/Inspector-iOS-11.0.json:
1802 * Versions/Inspector-iOS-11.3.json:
1803 * Versions/Inspector-iOS-12.0.json:
1804 * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
1805 * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
1806 * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
1807 * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
1808 * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
1809 * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
1810 * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
1811 * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
1812
18132018-12-13 Devin Rousso <drousso@apple.com>
1814
drousso@apple.com51f344f22018-12-13 22:31:25 +00001815 Web Inspector: experimental settings reload button disappears after changing more than one setting
1816 https://bugs.webkit.org/show_bug.cgi?id=192645
1817 <rdar://problem/46626204>
1818
1819 Reviewed by Joseph Pecoraro.
1820
1821 * UserInterface/Views/SettingsTabContentView.js:
1822 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView.listenForChange):
1823 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
1824
mattbaker@apple.com670d8662018-12-13 20:46:59 +000018252018-12-13 Matt Baker <mattbaker@apple.com>
1826
mattbaker@apple.comae8f6982018-12-13 22:29:07 +00001827 Web Inspector: REGRESSION(r238602): Elements: deleting multiple DOM nodes doesn't select the nearest node after deletion
1828 https://bugs.webkit.org/show_bug.cgi?id=192116
1829 <rdar://problem/46344339>
1830
1831 Reviewed by Devin Rousso.
1832
1833 * UserInterface/Controllers/SelectionController.js:
1834 (WI.SelectionController.prototype.removeSelectedItems):
1835 Finding a new index to select should go through the delegate instead of
1836 naively advancing the index.
1837
1838 * UserInterface/Views/DOMTreeElement.js:
1839 (WI.DOMTreeElement.prototype._populateNodeContextMenu):
1840 (WI.DOMTreeElement.prototype.ondelete): Deleted.
1841 The menu item for removing the DOM node is now managed by the parent
1842 DOMTreeOutline, since its UI and behavior now depend on whether there
1843 are multiple elements selected.
1844
1845 * UserInterface/Views/DOMTreeOutline.js:
1846 (WI.DOMTreeOutline.prototype.populateContextMenu):
1847 (WI.DOMTreeOutline.prototype.ondelete.level):
1848 (WI.DOMTreeOutline.prototype.ondelete):
1849 Implement `ondelete` to remove selected DOM nodes using the delete and
1850 backspace keys. Also used by the DOMTreeOutline's context menu handler.
1851
18522018-12-13 Matt Baker <mattbaker@apple.com>
1853
mattbaker@apple.com670d8662018-12-13 20:46:59 +00001854 Web Inspector: Table selection becomes corrupted when deleting selected cookies
1855 https://bugs.webkit.org/show_bug.cgi?id=192388
1856 <rdar://problem/46472364>
1857
1858 Reviewed by Devin Rousso.
1859
1860 * UserInterface/Controllers/SelectionController.js:
1861 (WI.SelectionController):
1862 (WI.SelectionController.prototype.didRemoveItems):
1863 (WI.SelectionController.prototype._updateSelectedItems):
1864 (WI.SelectionController.prototype.didRemoveItem): Deleted.
1865 Replace `didRemoveItem` with a method taking an IndexSet. Calling the
1866 single-index version while iterating over multiple rows in ascending
1867 order is unsafe, a detail best left to the SelectionController.
1868
1869 * UserInterface/Views/Table.js:
1870 (WI.Table.prototype.removeRow):
1871 (WI.Table.prototype._removeRows):
1872 Notify SelectionController of removed rows.
1873
1874 * UserInterface/Views/TreeOutline.js:
1875 (WI.TreeOutline.prototype.insertChild):
1876 (WI.TreeOutline.prototype.removeChildAtIndex):
1877 Remove the child from the element's `children` after calling `_forgetTreeElement`,
1878 which needs to calculate the child's index to pass to the SelectionController.
1879
1880 (WI.TreeOutline.prototype.removeChildren):
1881 Remove child items during iteration so that `children` doesn't contain
1882 detached TreeElements while calling `_forgetTreeElement`.
1883
1884 (WI.TreeOutline.prototype._rememberTreeElement):
1885 (WI.TreeOutline.prototype._forgetTreeElement):
1886
mattbaker@apple.com5caa9382018-12-10 22:03:13 +000018872018-12-10 Matt Baker <mattbaker@apple.com>
1888
mattbaker@apple.combd91cda2018-12-11 03:50:25 +00001889 Web Inspector: REGRESSION (r238599): unable to select specific timeline
1890 https://bugs.webkit.org/show_bug.cgi?id=192443
1891 <rdar://problem/46608087>
1892
1893 Reviewed by Joseph Pecoraro.
1894
1895 When determining the trailing horizontal edge for TreeElement mouse
1896 events, TreeOutline should not assume that its containing DOM element
1897 is only as wide as its <ol> element.
1898
1899 * UserInterface/Views/TreeOutline.js:
1900 (WI.TreeOutline.prototype.treeElementFromEvent):
1901
19022018-12-10 Matt Baker <mattbaker@apple.com>
1903
mattbaker@apple.com5caa9382018-12-10 22:03:13 +00001904 Web Inspector: Move TreeOutlineGroup coordination out of TreeElement
1905 https://bugs.webkit.org/show_bug.cgi?id=192487
1906 <rdar://problem/46543431>
1907
1908 Reviewed by Devin Rousso.
1909
1910 * UserInterface/Views/TreeElement.js:
1911 (WI.TreeElement.prototype.select):
1912 (WI.TreeElement.prototype.deselect):
1913
1914 * UserInterface/Views/TreeOutlineGroup.js:
1915 (WI.TreeOutlineGroup):
1916 (WI.TreeOutlineGroup.prototype.itemAdded):
1917 (WI.TreeOutlineGroup.prototype.itemRemoved):
1918 (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
1919 (WI.TreeOutlineGroup.prototype._treeOutlineSelectionDidChange):
1920 (WI.TreeOutlineGroup.groupForTreeOutline): Deleted.
1921 (WI.TreeOutlineGroup.prototype.didSelectTreeElement): Deleted.
1922 make the group responsible for listening to selection changes from the
1923 TreeOutlines it manages, and synchronizing the selection between them.
1924
dino@apple.com22655bc2018-12-10 19:45:45 +000019252018-12-10 Dean Jackson <dino@apple.com>
1926
1927 Use text/javascript as recommended by the HTML specification
1928 https://bugs.webkit.org/show_bug.cgi?id=192525
1929 <rdar://problem/46569636>
1930
1931 Reviewed by Jon Lee.
1932
1933 The HTML specification says we should use text/javascript for
1934 JavaScript files:
1935 https://html.spec.whatwg.org/multipage/scripting.html#scriptingLanguages:javascript-mime-type
1936
1937 * UserInterface/Base/MIMETypeUtilities.js:
1938 (WI.mimeTypeForFileExtension):
1939 * UserInterface/Views/TextEditor.js:
1940 (WI.TextEditor.prototype._attemptToDetermineMIMEType):
1941
mattbaker@apple.coma9693d12018-12-06 20:37:55 +000019422018-12-06 Matt Baker <mattbaker@apple.com>
1943
1944 Web Inspector: REGRESSION(r238602): Elements: collapsing a DOM node with the left arrow doesn't work
1945 https://bugs.webkit.org/show_bug.cgi?id=192353
1946 <rdar://problem/46455019>
1947
1948 Reviewed by Devin Rousso.
1949
1950 * UserInterface/Views/TreeElement.js:
1951 (WI.TreeElement.prototype.deselect):
1952 Don't early return when the element is not the selected tree element.
1953 This condition no longer holds now that TreeOutline supports multiple selection.
1954
mattbaker@apple.com12e1de22018-12-05 23:50:08 +000019552018-12-05 Matt Baker <mattbaker@apple.com>
1956
1957 Web Inspector: SelectionController should not extend the selection when allowsMultipleSelection is false
1958 https://bugs.webkit.org/show_bug.cgi?id=192390
1959 <rdar://problem/46473624>
1960
1961 Reviewed by Devin Rousso.
1962
1963 * UserInterface/Controllers/SelectionController.js:
1964 (WI.SelectionController.prototype.selectItem):
1965
nvasilyev@apple.com2c073612018-12-05 01:37:03 +000019662018-12-04 Nikita Vasilyev <nvasilyev@apple.com>
1967
1968 Web Inspector: Add style editing debug mode
1969 https://bugs.webkit.org/show_bug.cgi?id=192282
1970 <rdar://problem/46399176>
1971
1972 Reviewed by Matt Baker.
1973
1974 Introduce a style editing debug mode to help to troubleshoot complex bugs in the style editor.
1975
1976 - Log CSS changes;
1977 - Display red border for locked style declarations.
1978
1979 * UserInterface/Base/Setting.js:
1980 * UserInterface/Models/CSSProperty.js:
1981 (WI.CSSProperty.prototype._updateOwnerStyleText):
1982 * UserInterface/Views/SettingsTabContentView.js:
1983 (WI.SettingsTabContentView.prototype._createDebugSettingsView):
1984 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
1985 (.spreadsheet-style-declaration-editor.debug-style-locked::after):
1986 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
1987 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
1988 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
1989 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateDebugLockStatus):
1990
mattbaker@apple.comda99a652018-12-04 20:07:09 +000019912018-12-04 Matt Baker <mattbaker@apple.com>
1992
1993 Web Inspector: REGRESSION(r238602): Elements: changing selection no longer highlights the selected node
1994 https://bugs.webkit.org/show_bug.cgi?id=192354
1995 <rdar://problem/46444438>
1996
1997 Reviewed by Joseph Pecoraro.
1998
1999 * UserInterface/Views/TreeOutline.js:
2000 (WI.TreeOutline.prototype._treeKeyDown):
2001 (WI.TreeOutline.prototype._handleMouseDown):
2002
joepeck@webkit.org196d77d2018-12-04 19:07:57 +000020032018-12-04 Joseph Pecoraro <pecoraro@apple.com>
2004
2005 Web Inspector: REGRESSION(r238330): Timeline auto-capture does not work after page transition
2006 https://bugs.webkit.org/show_bug.cgi?id=192248
2007 <rdar://problem/46390199>
2008
2009 Reviewed by Devin Rousso.
2010
2011 * UserInterface/Base/Main.js:
2012 (WI.transitionPageTarget):
2013 Let the TimelineManager perform work on page transitions.
2014
2015 * UserInterface/Controllers/TimelineManager.js:
2016 (WI.TimelineManager.prototype.initializeTarget):
2017 Initialize the autocapture state of the target.
2018
2019 (WI.TimelineManager.prototype.transitionPageTarget):
2020 When transitioning pages perform a legacy (frontend based) timeline capture.
2021
mattbaker@apple.com3ef72142018-12-04 18:14:28 +000020222018-12-04 Matt Baker <mattbaker@apple.com>
2023
mattbaker@apple.com205489c2018-12-04 18:17:16 +00002024 Web Inspector: Elements: $0 is shown for all selected elements
2025 https://bugs.webkit.org/show_bug.cgi?id=192119
2026 <rdar://problem/46327554>
2027
2028 Reviewed by Devin Rousso.
2029
2030 * UserInterface/Views/ContentBrowserTabContentView.js:
2031 (WI.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
2032 * UserInterface/Views/DOMTreeContentView.js:
2033 (WI.DOMTreeContentView):
2034 (WI.DOMTreeContentView.prototype.layout):
2035 (WI.DOMTreeContentView.prototype._domTreeSelectionDidChange):
2036 Update the selected DOM node using the TreeOutline's selection change
2037 event, instead of in `onselect`, which wasn't always called.
2038
2039 * UserInterface/Views/DOMTreeElement.js:
2040 (WI.DOMTreeElement.prototype.onselect): Deleted.
2041 (WI.DOMTreeElement.prototype.ondeselect): Deleted.
2042 Eliminate `onselect` and `ondeselect`. TreeOutline clients should use
2043 the TreeOutline.Event.SelectedDidChange event instead.
2044
2045 * UserInterface/Views/DOMTreeOutline.css:
2046 (.tree-outline.dom li.last-selected > span::after):
2047 (.tree-outline.dom:focus li.last-selected > span::after):
2048 (.tree-outline.dom li.selected > span::after): Deleted.
2049 (.tree-outline.dom:focus li.selected > span::after): Deleted.
2050 * UserInterface/Views/DOMTreeOutline.js:
2051 (WI.DOMTreeOutline.prototype.updateSelection): Deleted.
2052
2053 * UserInterface/Views/DebuggerSidebarPanel.js:
2054 (WI.DebuggerSidebarPanel.prototype._handleDebuggerObjectDisplayLocationDidChange):
2055 * UserInterface/Views/FolderizedTreeElement.js:
2056 (WI.FolderizedTreeElement.prototype._addTreeElement):
2057 * UserInterface/Views/NavigationSidebarPanel.js:
2058 (WI.NavigationSidebarPanel.prototype.showDefaultContentViewForTreeElement):
2059 (WI.NavigationSidebarPanel.prototype._treeElementWasFiltered):
2060 (WI.NavigationSidebarPanel):
2061 * UserInterface/Views/OpenResourceDialog.js:
2062 (WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
2063 (WI.OpenResourceDialog.prototype._handleKeydownEvent):
2064 * UserInterface/Views/SourceCodeTreeElement.js:
2065 (WI.SourceCodeTreeElement.prototype.descendantResourceTreeElementTypeDidChange):
2066 * UserInterface/Views/TreeElement.js:
2067 (WI.TreeElement.prototype.select):
2068 (WI.TreeElement.prototype.revealAndSelect):
2069 (WI.TreeElement.prototype.deselect):
2070 Remove `suppressOnDeselect` and rename `suppressOnSelect` to `suppressNotification`.
2071 Now that `ondeselect` has been removed `suppressOnDeselect` is no longer
2072 meaningful, as TreeOutline generates a single `SelectedDidChange` event
2073 when the selected item changes. In the case of `revealAndSelect`, both
2074 arguments had the same value.
2075
2076 * UserInterface/Views/TreeOutline.js:
2077 (WI.TreeOutline):
2078 (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2079 Add a unique class name to the last selected TreeElement to distinguish
2080 it from other selected elements.
2081
20822018-12-04 Matt Baker <mattbaker@apple.com>
2083
mattbaker@apple.com3ef72142018-12-04 18:14:28 +00002084 Web Inspector: Elements: ⌘-A should select all visible nodes
2085 https://bugs.webkit.org/show_bug.cgi?id=192120
2086 <rdar://problem/46344435>
2087
2088 Reviewed by Devin Rousso.
2089
2090 * UserInterface/Views/TreeOutline.js:
2091 (WI.TreeOutline.prototype._treeKeyDown):
2092 Remove an early return, allowing `WI.SelectionController` to handle ⌘-A
2093 and select all items.
2094
drousso@apple.com8a0bc012018-12-04 09:08:42 +000020952018-12-04 Devin Rousso <drousso@apple.com>
2096
2097 Web Inspector: Audit: tests should support async operations
2098 https://bugs.webkit.org/show_bug.cgi?id=192171
2099 <rdar://problem/46423562>
2100
2101 Reviewed by Joseph Pecoraro.
2102
2103 * UserInterface/Controllers/RuntimeManager.js:
2104 (WI.RuntimeManager.supportsAwaitPromise): Added.
2105
2106 * UserInterface/Models/AuditTestCase.js:
2107 (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty.addErrorForValueType): Deleted.
2108 (WI.AuditTestCase.prototype.async run.async parseResponse.checkResultProperty): Deleted.
2109 (WI.AuditTestCase.prototype.async run.async parseResponse.async resultArrayForEach): Deleted.
2110 (WI.AuditTestCase.prototype.async run.async parseResponse): Added.
2111 (WI.AuditTestCase.prototype.async run):
2112 (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Deleted.
2113 (WI.AuditTestCase.prototype.async run.checkResultProperty): Deleted.
2114 (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Deleted.
2115
2116 * UserInterface/Models/AuditTestCaseResult.js:
2117 (WI.AuditTestCaseResult.async fromPayload):
2118 (WI.AuditTestCaseResult.prototype.toJSON):
2119
2120 * UserInterface/Views/AuditTestCaseContentView.js:
2121 (WI.AuditTestCaseContentView.prototype.layout):
2122
drousso@apple.come0585f22018-12-04 00:15:22 +000021232018-12-03 Devin Rousso <drousso@apple.com>
2124
drousso@apple.com7740b002018-12-04 06:01:16 +00002125 Web Inspector: Audit: save the expanded state of test groups
2126 https://bugs.webkit.org/show_bug.cgi?id=192346
2127 <rdar://problem/46440704>
2128
2129 Reviewed by Matt Baker.
2130
2131 * UserInterface/Views/AuditTreeElement.js:
2132 (WI.AuditTreeElement):
2133 (WI.AuditTreeElement.prototype.onattach):
2134 (WI.AuditTreeElement.prototype.onexpand): Added.
2135 (WI.AuditTreeElement.prototype.oncollapse): Added.
2136
21372018-12-03 Devin Rousso <drousso@apple.com>
2138
drousso@apple.com4233f5d2018-12-04 04:06:55 +00002139 Web Inspector: Audit: sidebar briefly shows "No Filter Results" before populating default audits
2140 https://bugs.webkit.org/show_bug.cgi?id=192341
2141 <rdar://problem/46436550>
2142
2143 Reviewed by Matt Baker.
2144
2145 * UserInterface/Views/AuditNavigationSidebarPanel.js:
2146 (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
2147 (WI.AuditNavigationSidebarPanel.prototype._addTest):
2148 (WI.AuditNavigationSidebarPanel.prototype._addResult):
2149 (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Deleted.
2150 Delay the construction of the "Results" folder until it's needed, since adding a hidden
2151 `WI.TreeElement` will cause the placeholder to appear.
2152
21532018-12-03 Devin Rousso <drousso@apple.com>
2154
drousso@apple.com48207222018-12-04 04:06:31 +00002155 Web Inspector: Audit: navigating while tests are running should stop and clear all results
2156 https://bugs.webkit.org/show_bug.cgi?id=192317
2157 <rdar://problem/46435222>
2158
2159 Reviewed by Joseph Pecoraro.
2160
2161 * UserInterface/Controllers/AuditManager.js:
2162 (WI.AuditManager.prototype.async start):
2163 (WI.AuditManager.prototype._handleFrameMainResourceDidChange):
2164
2165 * UserInterface/Views/AuditNavigationSidebarPanel.js:
2166 (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
2167 Drive-by: pass the index of the saved result.
2168
21692018-12-03 Devin Rousso <drousso@apple.com>
2170
drousso@apple.com6200f7d2018-12-04 00:57:36 +00002171 Web Inspector: Audit: "Add Default Audits" shown when there are no filter results
2172 https://bugs.webkit.org/show_bug.cgi?id=192105
2173
2174 Reviewed by Matt Baker.
2175
2176 * UserInterface/Views/NavigationSidebarPanel.js:
2177 (WI.NavigationSidebarPanel):
2178 (WI.NavigationSidebarPanel.prototype.get hasActiveFilters): Added.
2179 (WI.NavigationSidebarPanel.prototype.suppressFilteringOnTreeElements):
2180 (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
2181 (WI.NavigationSidebarPanel.prototype.hideEmptyContentPlaceholder):
2182 (WI.NavigationSidebarPanel.prototype.updateEmptyContentPlaceholder):
2183 (WI.NavigationSidebarPanel.prototype.updateFilter):
2184 (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
2185 (WI.NavigationSidebarPanel.prototype._filterDidChange):
2186 (WI.NavigationSidebarPanel.prototype._updateFilter): Deleted.
2187 (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded): Deleted.
2188
2189 * UserInterface/Views/AuditNavigationSidebarPanel.js:
2190 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
2191 Drive-by: change capitalization for consistency with other navigation sidebars.
2192
2193 * Localizations/en.lproj/localizedStrings.js:
2194
21952018-12-03 Devin Rousso <drousso@apple.com>
2196
drousso@apple.come0585f22018-12-04 00:15:22 +00002197 Web Inspector: Canvas: add singular localized string for "Record first %s frames"
2198 https://bugs.webkit.org/show_bug.cgi?id=192189
2199
2200 Reviewed by Joseph Pecoraro.
2201
2202 * UserInterface/Views/CanvasOverviewContentView.js:
2203 (WI.CanvasOverviewContentView):
2204 (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
2205 (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureCheckboxLabel): Added.
2206 (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
2207 (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged):
2208 (WI.CanvasOverviewContentView.prototype.initialLayout): Deleted.
2209 Drive-by: update the auto-capture navigation item when the view is first created so there is
2210 no flashing of in the navigation bar (before `initialLayout` is called).
2211
2212 * UserInterface/Views/CheckboxNavigationItem.js:
2213 (WI.CheckboxNavigationItem):
2214 (WI.CheckboxNavigationItem.prototype.set label): Added.
2215
2216 * Localizations/en.lproj/localizedStrings.js:
2217
mattbaker@apple.com22988c72018-12-03 23:16:25 +000022182018-12-03 Matt Baker <mattbaker@apple.com>
2219
2220 Web Inspector: REGRESSION(r238599): Multiple Selection: restoring selection when opening WebInspector puts the TreeElement into a permanent selected state
2221 https://bugs.webkit.org/show_bug.cgi?id=192091
2222 <rdar://problem/46321795>
2223
2224 Reviewed by Devin Rousso.
2225
2226 * UserInterface/Controllers/SelectionController.js:
2227 (WI.SelectionController.prototype.didInsertItem):
2228 Fix a bug where selected indexes were overwritten by the inserted index.
2229
2230 * UserInterface/Views/TreeOutline.js:
2231 (WI.TreeOutline):
2232 (WI.TreeOutline.prototype.insertChild):
2233 Update the SelectionController with the newly inserted index before
2234 attaching the TreeElement. Attaching the TreeElement can cause it to
2235 become selected, which would add the index to the SelectionController,
2236 only to have it immediately incremented by the call to `didInsertItem`.
2237 Additionally, change `insertionIndex` to be the index of the inserted
2238 item instead of the inserted item's previous sibling.
2239
2240 (WI.TreeOutline.prototype._rememberTreeElement):
2241 (WI.TreeOutline.prototype._forgetTreeElement):
2242 (WI.TreeOutline.prototype._indexOfTreeElement.previousElement): Deleted.
2243 Eliminate TreeElement index caching, which could become stale and cause
2244 the wrong index to be calculated. Additionally, instead of walking up the
2245 parent chain to determine the index, start at the root and use existing
2246 method `traverseNextTreeElement`.
2247
drousso@apple.com08918db2018-12-03 22:28:35 +000022482018-12-03 Devin Rousso <drousso@apple.com>
2249
2250 Web Inspector: Audit: test tree elements should start out collapsed
2251 https://bugs.webkit.org/show_bug.cgi?id=192107
2252
2253 Reviewed by Matt Baker.
2254
2255 * UserInterface/Views/AuditTreeElement.js:
2256 (WI.AuditTreeElement.prototype.onattach):
2257
nvasilyev@apple.com6d3434f2018-12-03 20:37:10 +000022582018-12-03 Nikita Vasilyev <nvasilyev@apple.com>
2259
2260 Web Inspector: Styles: can't select properties of read-only rules
2261 https://bugs.webkit.org/show_bug.cgi?id=192266
2262
2263 Reviewed by Devin Rousso.
2264
2265 Implement multiple properties selection for read-only rules (such as User Agent Stylesheets)
2266 in the Styles panel.
2267
2268 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2269 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
2270 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
2271 Keep selection on layout.
2272
2273 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
2274 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
2275 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur):
2276 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter):
2277 SpreadsheetCSSStyleDeclarationEditor is used by ComputedStyleDetailsPanel, which doesn't have:
2278 - spreadsheetCSSStyleDeclarationEditorPropertyBlur
2279 - spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter
2280
2281 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
2282 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
2283 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2284 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2285 * UserInterface/Views/SpreadsheetStyleProperty.js:
2286 (WI.SpreadsheetStyleProperty.prototype.startEditingName):
2287 (WI.SpreadsheetStyleProperty.prototype.startEditingValue):
2288
bburg@apple.com59fa88c2018-12-03 19:13:17 +000022892018-11-30 Brian Burg <bburg@apple.com>
2290
2291 Web Inspector: resource combining should be more robust against missing WebKitAdditions
2292 https://bugs.webkit.org/show_bug.cgi?id=192255
2293 <rdar://problem/46042879>
2294
2295 Reviewed by Joseph Pecoraro.
2296
2297 * Scripts/copy-user-interface-resources.pl:
2298 (combineOrStripResourcesForWebKitAdditions):
2299
nvasilyev@apple.combd15c462018-12-01 00:15:16 +000023002018-11-30 Nikita Vasilyev <nvasilyev@apple.com>
2301
2302 Web Inspector: Jumping from Computed to Styles should select property
2303 https://bugs.webkit.org/show_bug.cgi?id=192198
2304
2305 Reviewed by Devin Rousso.
2306
2307 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2308 (.spreadsheet-style-declaration-editor .property.highlighted): Deleted.
2309 (@keyframes style-property-highlight): Deleted.
2310 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2311 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
2312 Remove unnecessary `__propertyView` property.
2313
2314 * UserInterface/Views/SpreadsheetStyleProperty.js:
2315 (WI.SpreadsheetStyleProperty.prototype.detached):
2316 (WI.SpreadsheetStyleProperty.prototype.highlight): Deleted.
2317
mattbaker@apple.com9bc5e7d2018-11-30 22:40:52 +000023182018-11-30 Matt Baker <mattbaker@apple.com>
2319
2320 Web Inspector: REGRESSION(r238599): Multiple Selection: selecting a breakpoint will change the selection to it's parent on the first click
2321 https://bugs.webkit.org/show_bug.cgi?id=192093
2322 <rdar://problem/46318466>
2323
2324 Reviewed by Devin Rousso.
2325
2326 * UserInterface/Views/TreeElement.js:
2327 (WI.TreeElement.prototype.select):
2328 TreeElement shouldn't manage the TreeOutline's selection barrier.
2329
2330 * UserInterface/Views/TreeOutline.js:
2331 (WI.TreeOutline):
2332 (WI.TreeOutline.prototype.get processingSelectionChange):
2333 (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2334 (WI.TreeOutline.prototype.selectTreeElementInternal):
2335 The selection re-entry barrier `processingSelectionChange` should be
2336 managed internally by TreeOutline, and exposed as a read-only property.
2337 Fix a bug where the barrier was cleared before dispatching the change
2338 notification, which can cause re-entry as a side effect.
2339
drousso@apple.comd01aed32018-11-30 21:27:54 +000023402018-11-30 Devin Rousso <drousso@apple.com>
2341
2342 Web Inspector: Settings: reload button needs horizontal spacing
2343 https://bugs.webkit.org/show_bug.cgi?id=192231
2344 <rdar://problem/46274363>
2345
2346 Reviewed by Matt Baker.
2347
2348 * UserInterface/Views/SettingsTabContentView.css:
2349 (.content-view.settings > .settings-view > .container button):
2350 (.content-view.settings > .settings-view > .container > .title):
2351 (.content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]):
2352 (body[dir=ltr] .content-view.settings > .settings-view > .container > .title): Deleted.
2353 (body[dir=rtl] .content-view.settings > .settings-view > .container > .title): Deleted.
2354 (body[dir=ltr] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
2355 (body[dir=rtl] .content-view.settings > .settings-view > .container > .editor-group > .editor input[type="checkbox"]): Deleted.
2356 Drive-by: replace `dir=*` attribute rules with `-webkit-margin-*` properties.
2357
joepeck@webkit.org2b4ec822018-11-30 21:13:27 +000023582018-11-30 Joseph Pecoraro <pecoraro@apple.com>
2359
2360 Web Inspector: Uncaught Exception opening Web Inspector to Debugger Tab
2361 https://bugs.webkit.org/show_bug.cgi?id=192174
2362
2363 Reviewed by Devin Rousso.
2364
2365 * UserInterface/Protocol/InspectorBackend.js:
2366 (InspectorBackendClass.prototype.runAfterPendingDispatches):
2367 Dispatch the callback with a timeout if there is no backend target yet
2368 so it doesn't get lost.
2369
2370 * UserInterface/Protocol/Connection.js:
2371 (InspectorBackend.Connection.prototype.runAfterPendingDispatches):
2372 Change the ambiguous name "script" to the more familiar "callback".
2373
drousso@apple.comb11427e2018-11-30 18:55:38 +000023742018-11-30 Devin Rousso <drousso@apple.com>
2375
2376 Web Inspector: replace all unicode characters with the escaped character code
2377 https://bugs.webkit.org/show_bug.cgi?id=192216
2378 <rdar://problem/46275637>
2379
2380 Reviewed by Brian Burg.
2381
2382 * Localizations/en.lproj/localizedStrings.js:
2383 * UserInterface/Controllers/BreakpointPopoverController.js:
2384 * UserInterface/Debug/UncaughtExceptionReporter.js:
2385 * UserInterface/Models/AuditTestCase.js:
2386 * UserInterface/Models/Canvas.js:
2387 * UserInterface/Models/RecordingAction.js:
2388 * UserInterface/Models/ScriptTimelineRecord.js:
2389 * UserInterface/Views/AuditTestCaseContentView.js:
2390 * UserInterface/Views/AuditTestContentView.js:
2391 * UserInterface/Views/AuditTestGroupContentView.js:
2392 * UserInterface/Views/CallFrameView.js:
2393 * UserInterface/Views/CanvasContentView.js:
2394 * UserInterface/Views/CanvasOverviewContentView.css:
2395 * UserInterface/Views/ConsoleMessageView.css:
2396 * UserInterface/Views/ContextMenuUtilities.js:
2397 * UserInterface/Views/DOMEventsBreakdownView.js:
2398 * UserInterface/Views/DataGrid.css:
2399 * UserInterface/Views/DataGrid.js:
2400 * UserInterface/Views/DatabaseTableContentView.js:
2401 * UserInterface/Views/DebuggerDashboardView.css:
2402 * UserInterface/Views/DebuggerSidebarPanel.js:
2403 * UserInterface/Views/ErrorObjectView.js:
2404 * UserInterface/Views/EventBreakpointPopover.js:
2405 * UserInterface/Views/InlineSwatch.js:
2406 * UserInterface/Views/LayerTreeDataGridNode.js:
2407 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
2408 * UserInterface/Views/Layers3DContentView.js:
2409 * UserInterface/Views/LayoutTimelineDataGridNode.js:
2410 * UserInterface/Views/NetworkTableContentView.css:
2411 * UserInterface/Views/NetworkTableContentView.js:
2412 * UserInterface/Views/ObjectPreviewView.js:
2413 * UserInterface/Views/ProfileDataGridNode.js:
2414 * UserInterface/Views/ResourceTimelineDataGridNode.js:
2415 * UserInterface/Views/ScriptDetailsTimelineView.css:
2416 * UserInterface/Views/TextEditor.css:
2417 * UserInterface/Views/TreeOutline.css:
2418
mattbaker@apple.com4a9cfd62018-11-30 00:39:02 +000024192018-11-29 Matt Baker <mattbaker@apple.com>
2420
2421 Web Inspector: RTL: disclosure triangles should be flipped and aligned right
2422 https://bugs.webkit.org/show_bug.cgi?id=192089
2423 <rdar://problem/46316753>
2424
2425 Reviewed by Devin Rousso.
2426
2427 * UserInterface/Views/ComputedStyleSection.css:
2428 (.computed-style-section .computed-property-item .disclosure-button):
2429 (body[dir=rtl] .computed-style-section .computed-property-item .disclosure-button):
2430
2431 * UserInterface/Views/ConsoleMessageView.css:
2432 (.console-message.expandable .console-top-level-message::before):
2433 (body[dir=rtl] .console-message.expandable .console-top-level-message::before):
2434
2435 * UserInterface/Views/ErrorObjectView.css:
2436 (.error-object > .formatted-error::before):
2437 (body[dir=rtl] .error-object > .formatted-error::before):
2438 (.error-object .content):
2439
2440 * UserInterface/Views/LogContentView.css:
2441 (.console-group-title::before):
2442 (body[dir=ltr] .console-group-title::before):
2443 (body[dir=rtl] .console-group-title::before):
2444
2445 * UserInterface/Views/ObjectTreeView.css:
2446 (body[dir=rtl] .object-tree > :matches(.title, .object-preview)::before):
2447
2448 * UserInterface/Views/TypeTreeElement.css:
2449 (body[dir=rtl] .item.type-tree-element.parent > .disclosure-button):
2450
dino@apple.com83016b32018-11-29 18:26:44 +000024512018-11-28 Dean Jackson <dino@apple.com>
2452
2453 [ES Modules] Allow .mjs content when loaded from file://
2454 https://bugs.webkit.org/show_bug.cgi?id=192100
2455 <rdar://problem/46320065>
2456
2457 Reviewed by Sam Weinig.
2458
2459 Add a mapping from .mjs to application/javascript.
2460
2461 * UserInterface/Base/MIMETypeUtilities.js:
2462 (WI.mimeTypeForFileExtension):
2463
mattbaker@apple.com59102622018-11-29 17:50:21 +000024642018-11-29 Matt Baker <mattbaker@apple.com>
2465
2466 Web Inspector: Elements: selecting more than one DOM node causes the scope highlight to contrast
2467 https://bugs.webkit.org/show_bug.cgi?id=192118
2468 <rdar://problem/46325664>
2469
2470 Reviewed by Devin Rousso.
2471
2472 Use an alpha blended border for the "selected" DOM scope highlight,
2473 matching the "hovered" scope highlight.
2474
2475 * UserInterface/Views/DOMTreeOutline.css:
2476 (.tree-outline.dom li.selected + ol.children.expanded):
2477
joepeck@webkit.org1c556cd2018-11-29 04:39:45 +000024782018-11-28 Joseph Pecoraro <pecoraro@apple.com>
2479
2480 Web Inspector: REGRESSION(?): all "Show *" develop menu items cause the page to crash
2481 https://bugs.webkit.org/show_bug.cgi?id=192016
2482 <rdar://problem/46284417>
2483
2484 Reviewed by Devin Rousso.
2485
2486 * UserInterface/Base/Main.js:
2487 (WI.loaded):
2488 (WI.initializeBackendTarget):
2489 (WI.contentLoaded):
2490 (WI.whenTargetsAvailable):
2491 Don't evaluate any InspectorFrontendAPI commands until the frontend
2492 has initialized a main target and the user interface.
2493
nvasilyev@apple.com1a802e72018-11-29 01:11:10 +000024942018-11-28 Nikita Vasilyev <nvasilyev@apple.com>
2495
2496 Web Inspector: Styles: enable selection of multiple properties by default
2497 https://bugs.webkit.org/show_bug.cgi?id=192109
2498 <rdar://problem/46323565>
2499
2500 Reviewed by Devin Rousso.
2501
2502 * UserInterface/Base/Setting.js:
2503 * UserInterface/Views/SettingsTabContentView.js:
2504 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2505 Remove the checkbox.
2506
2507 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
2508 (.spreadsheet-style-declaration-editor .property):
2509 (.spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
2510 (.spreadsheet-style-declaration-editor .property.selected):
2511 (.spreadsheet-style-declaration-editor .property.selected:focus):
2512 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property): Deleted.
2513 (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)): Deleted.
2514 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected): Deleted.
2515 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus): Deleted.
2516 Remove `.multiple-properties-selection` class.
2517
2518 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
2519 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
2520 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2521 (WI.SpreadsheetCSSStyleDeclarationSection):
2522 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
2523 * UserInterface/Views/SpreadsheetStyleProperty.js:
2524 (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2525 * UserInterface/Views/SpreadsheetTextField.js:
2526 (WI.SpreadsheetTextField):
2527 (WI.SpreadsheetTextField.prototype._handleFocus): Deleted.
2528
drousso@apple.com8f9bd722018-11-29 00:09:51 +000025292018-11-28 Devin Rousso <drousso@apple.com>
2530
2531 Web Inspector: Audit: empty results folder is shown after clearing filters
2532 https://bugs.webkit.org/show_bug.cgi?id=192106
2533
2534 Reviewed by Matt Baker.
2535
2536 * UserInterface/Views/AuditNavigationSidebarPanel.js:
2537 (WI.AuditNavigationSidebarPanel.prototype.applyFiltersToTreeElement): Added.
2538
mattbaker@apple.com54754372018-11-28 19:47:01 +000025392018-11-28 Matt Baker <mattbaker@apple.com>
2540
2541 Web Inspector: Remove unused DataGrid and TreeOutline code
2542 https://bugs.webkit.org/show_bug.cgi?id=191622
2543 <rdar://problem/46052014>
2544
2545 Reviewed by Devin Rousso.
2546
2547 * UserInterface/Views/CanvasDetailsSidebarPanel.js:
2548 (WI.CanvasDetailsSidebarPanel.prototype.initialLayout):
2549
2550 * UserInterface/Views/DOMTreeElement.js:
2551 (WI.DOMTreeElement.prototype.insertChildElement):
2552
2553 * UserInterface/Views/DOMTreeOutline.js:
2554 (WI.DOMTreeOutline):
2555 (WI.DOMTreeOutline.prototype.update):
2556
2557 * UserInterface/Views/DataGrid.js:
2558 (WI.DataGrid.prototype.removeChildrenRecursive): Deleted.
2559
2560 * UserInterface/Views/DataGridNode.js:
2561 (WI.DataGridNode.prototype.removeChildren):
2562 (WI.DataGridNode.prototype.removeChildrenRecursive): Deleted.
2563
2564 * UserInterface/Views/ErrorObjectView.css:
2565 (.error-object:not(.expanded) .content):
2566 (.error-object .content):
2567 (.error-object:not(.expanded) .tree-outline): Deleted.
2568 (.error-object .tree-outline): Deleted.
2569
2570 * UserInterface/Views/ErrorObjectView.js:
2571 (WI.ErrorObjectView):
2572 (WI.ErrorObjectView.prototype.get treeOutline): Deleted.
2573 Use a simple container since TreeOutline features aren't used,
2574 and remove unused property `treeOutline`.
2575
2576 * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
2577 (WI.RecordingTraceDetailsSidebarPanel):
2578
2579 * UserInterface/Views/TreeElement.js:
2580 (WI.TreeElement.prototype.removeChildren):
2581 (WI.TreeElement.prototype.removeChildrenRecursive): Deleted.
2582
2583 * UserInterface/Views/TreeOutline.js:
2584 (WI.TreeOutline):
2585 (WI.TreeOutline.prototype.removeChildrenRecursive): Deleted.
2586 (WI.TreeOutline.prototype.reattachIfIndexChanged): Deleted.
2587 Removed `element` parameter now that the only use case has been removed.
2588
mattbaker@apple.coma5893f82018-11-28 02:55:42 +000025892018-11-27 Matt Baker <mattbaker@apple.com>
2590
mattbaker@apple.comdff9b242018-11-28 06:49:34 +00002591 Web Inspector: Elements tab should allow selecting/deleting multiple DOM nodes
2592 https://bugs.webkit.org/show_bug.cgi?id=192059
2593 <rdar://problem/46294827>
2594
2595 Reviewed by Devin Rousso.
2596
2597 Enable multiple DOM node selection in the DOMTreeContentView.
2598
2599 * UserInterface/Controllers/SelectionController.js:
2600 (WI.SelectionController):
2601 (WI.SelectionController.prototype.get allowsEmptySelection):
2602 (WI.SelectionController.prototype.set allowsEmptySelection):
2603 Allow clients to control whether the last selected item can be deselected.
2604 (WI.SelectionController.prototype.deselectItem):
2605 (WI.SelectionController.prototype.didInsertItem):
2606 Rewritten to prevent infinite loop.
2607 (WI.SelectionController.prototype.didRemoveItem):
2608 (WI.SelectionController.prototype._updateSelectedItems):
2609 (WI.SelectionController.prototype._adjustIndexesAfter): Deleted.
2610
2611 * UserInterface/Views/DOMTreeContentView.js:
2612 (WI.DOMTreeContentView):
2613
2614 * UserInterface/Views/DOMTreeElement.js:
2615 (WI.DOMTreeElement.prototype.updateSelectionArea):
2616 * UserInterface/Views/DOMTreeOutline.js:
2617 (WI.DOMTreeOutline.prototype.updateSelection):
2618 Updating the selection area DOM element should not assume that only one
2619 TreeElement is selected at a time.
2620
2621 * UserInterface/Views/TreeOutline.js:
2622 (WI.TreeOutline.prototype.get allowsEmptySelection):
2623 (WI.TreeOutline.prototype.set allowsEmptySelection):
2624 (WI.TreeOutline.prototype.set selectedTreeElement):
2625 (WI.TreeOutline.prototype.get selectedTreeElements):
2626 (WI.TreeOutline.prototype._treeKeyDown):
2627
2628 * UserInterface/Views/TreeOutlineGroup.js:
2629 (WI.TreeOutlineGroup):
2630 (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
2631 Eliminate use of `TreeElement.prototype.deselect`.
2632
26332018-11-27 Matt Baker <mattbaker@apple.com>
2634
mattbaker@apple.coma5893f82018-11-28 02:55:42 +00002635 Web Inspector: TreeOutline should re-use multiple-selection logic from Table
2636 https://bugs.webkit.org/show_bug.cgi?id=191483
2637 <rdar://problem/45953305>
2638
2639 Reviewed by Devin Rousso.
2640
2641 Update TreeOutline to use SelectionController. Adopting SelectionController
2642 in TreeOutline is not as straightforward as it was in Table. Selected items
2643 are tracked by index, and TreeElement lacks an explicit index. As a consequence
2644 TreeElement indexes are calcualted as needed and cached. The cache is cleared
2645 whenever an element is added or removed.
2646
2647 * UserInterface/Controllers/SelectionController.js:
2648 (WI.SelectionController.prototype.didInsertItem):
2649 (WI.SelectionController.prototype.didRemoveItem):
2650 (WI.SelectionController.prototype.handleKeyDown):
2651 Drive-by syntax error fix.
2652 (WI.SelectionController.prototype._adjustIndexesAfter):
2653 (WI.SelectionController):
2654
2655 * UserInterface/Views/DOMTreeElement.js:
2656 (WI.DOMTreeElement.prototype.canSelectOnMouseDown):
2657 (WI.DOMTreeElement.prototype.selectOnMouseDown): Deleted.
2658
2659 * UserInterface/Views/DOMTreeOutline.js:
2660 (WI.DOMTreeOutline.prototype._onmousedown):
2661 Item selection is now handled by SelectionController.
2662
2663 * UserInterface/Views/ShaderProgramTreeElement.js:
2664 (WI.ShaderProgramTreeElement.prototype.canSelectOnMouseDown):
2665 (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown): Deleted.
2666
2667 * UserInterface/Views/TreeElement.js:
2668 (WI.TreeElement.prototype.canSelectOnMouseDown):
2669 (WI.TreeElement.prototype._attach):
2670 (WI.TreeElement.prototype.select):
2671 (WI.TreeElement.prototype.deselect):
2672 Route item selection through the parent TreeOutline, in order to go though
2673 the TreeOutline's SelectionController.
2674
2675 (WI.TreeElement.treeElementMouseDown): Deleted.
2676 Moved handler to TreeOutline, which owns the SelectionController that
2677 needs to respond to mouse events.
2678
2679 * UserInterface/Views/TreeOutline.js:
2680 (WI.TreeOutline):
2681 (WI.TreeOutline.prototype.get allowsMultipleSelection):
2682 (WI.TreeOutline.prototype.set allowsMultipleSelection):
2683 (WI.TreeOutline.prototype.get selectedTreeElement):
2684 (WI.TreeOutline.prototype.set selectedTreeElement):
2685 (WI.TreeOutline.prototype.insertChild):
2686 (WI.TreeOutline.prototype.removeChildAtIndex):
2687 (WI.TreeOutline.prototype._rememberTreeElement):
2688 (WI.TreeOutline.prototype._forgetTreeElement):
2689 (WI.TreeOutline.prototype._treeKeyDown):
2690 (WI.TreeOutline.prototype.selectionControllerNumberOfItems):
2691 (WI.TreeOutline.prototype.selectionControllerSelectionDidChange):
2692 (WI.TreeOutline.prototype.selectionControllerNextSelectableIndex):
2693 (WI.TreeOutline.prototype.selectionControllerPreviousSelectableIndex):
2694 (WI.TreeOutline.prototype.selectTreeElementInternal):
2695 (WI.TreeOutline._generateStyleRulesIfNeeded._indexOfTreeElement.previousElement):
2696 (WI.TreeOutline._generateStyleRulesIfNeeded):
2697
nvasilyev@apple.comf000b0a2018-11-28 00:28:06 +000026982018-11-27 Nikita Vasilyev <nvasilyev@apple.com>
2699
nvasilyev@apple.comb92c36c2018-11-28 01:45:17 +00002700 Web Inspector: Experimental Computed panel is unreadable in Dark Mode
2701 https://bugs.webkit.org/show_bug.cgi?id=192053
2702
2703 Reviewed by Matt Baker.
2704
2705 * UserInterface/Views/ComputedStyleDetailsPanel.css:
2706 (@media (prefers-dark-interface)):
2707 (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
2708 * UserInterface/Views/ComputedStyleSection.css:
2709 (.computed-style-section .computed-property-item.expanded):
2710 (.computed-style-section .computed-property-item.expanded + .computed-property-item):
2711 (@media (prefers-dark-interface)):
2712
27132018-11-27 Nikita Vasilyev <nvasilyev@apple.com>
2714
nvasilyev@apple.comf000b0a2018-11-28 00:28:06 +00002715 Web Inspector: Computed panel: allow to expand properties to show list of overridden values
2716 https://bugs.webkit.org/show_bug.cgi?id=191984
2717
2718 Reviewed by Devin Rousso.
2719
2720 Introduce the new experimental Computed Style Cascades.
2721
2722 Each property now can expand to show a list of overridden values, their corresponding
2723 selectors, and source locations.
2724
2725 * Localizations/en.lproj/localizedStrings.js:
2726 * UserInterface/Base/Setting.js:
2727 * UserInterface/Main.html:
2728 * UserInterface/Models/DOMNodeStyles.js:
2729 (WI.DOMNodeStyles.prototype.get uniqueOrderedStyles):
2730 Move `uniqueOrderedStyles` function unmodified from SpreadsheetRulesStyleDetailsPanel so it can be used by ComputedStyleDetailsPanel, too.
2731
2732 * UserInterface/Views/ComputedStyleDetailsPanel.css:
2733 (.computed-with-traces .computed-style-properties):
2734 (.computed-with-traces .details-section.computed-style-properties:not(.collapsed) > :matches(.header, .content)):
2735 (.computed-with-traces .details-section.computed-style-properties > .content):
2736 (.computed-with-traces .computed-style-properties .property .go-to-arrow):
2737
2738 * UserInterface/Views/ComputedStyleDetailsPanel.js:
2739 (WI.ComputedStyleDetailsPanel.prototype.refresh):
2740 (WI.ComputedStyleDetailsPanel.prototype.applyFilter):
2741 (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
2742 (WI.ComputedStyleDetailsPanel.prototype.initialLayout):
2743 (WI.ComputedStyleDetailsPanel.prototype._computePropertyTraces):
2744 (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
2745 (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
2746 (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
2747 (WI.ComputedStyleDetailsPanel):
2748 Use the new Computed section (WI.ComputedStyleSection) only when it's enabled in the experimental settings.
2749 Otherwise, use the current Computed section.
2750
2751 * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
2752 (WI.ComputedStyleDetailsSidebarPanel):
2753
2754 * UserInterface/Views/ComputedStyleSection.css: Added.
2755 (.computed-style-section):
2756 (.computed-style-section .computed-property-item):
2757 (.computed-style-section .computed-property-item.expanded):
2758 (.computed-style-section .computed-property-item.expanded + .computed-property-item):
2759 (.computed-style-section .computed-property-item .disclosure-button):
2760 (.computed-style-section .computed-property-item .property-traces):
2761 (.computed-style-section .computed-property-item.expanded .property-traces):
2762 (.computed-style-section .computed-property-item.expanded .disclosure-button):
2763 (.computed-style-section .computed-property-item .property-trace-item):
2764 (.computed-style-section .computed-property-item .property-trace-item .property.overridden .value):
2765 (.computed-style-section .property-trace-item-left,):
2766 (.computed-style-section .property-trace-item-right):
2767 (.computed-style-section .computed-property-item .property-trace-item .value):
2768 (.computed-style-section .property .value):
2769 (.computed-style-section .computed-property-item .property):
2770 (.computed-style-section .computed-property-item .property .name):
2771 (.computed-style-section .computed-property-item .property-trace-item .selector):
2772 (.computed-style-section .computed-property-item .origin):
2773 (.computed-style-section .computed-property-item .go-to-link):
2774 (.computed-style-section .property-trace-item .property .name,):
2775 (.computed-style-section .property-trace-item .property .value + span):
2776 (.computed-style-properties.details-section > .content,):
2777
2778 * UserInterface/Views/ComputedStyleSection.js: Added.
2779 (WI.ComputedStyleSection):
2780 (WI.ComputedStyleSection.prototype.get style):
2781 (WI.ComputedStyleSection.prototype.set style):
2782 (WI.ComputedStyleSection.prototype.get styleTraces):
2783 (WI.ComputedStyleSection.prototype.set styleTraces):
2784 (WI.ComputedStyleSection.prototype.set showsImplicitProperties):
2785 (WI.ComputedStyleSection.prototype.set alwaysShowPropertyNames):
2786 (WI.ComputedStyleSection.prototype.set propertyVisibilityMode):
2787 (WI.ComputedStyleSection.prototype.set hideFilterNonMatchingProperties):
2788 (WI.ComputedStyleSection.prototype.get propertiesToRender):
2789 (WI.ComputedStyleSection.prototype.layout):
2790 (WI.ComputedStyleSection.prototype.detached):
2791 (WI.ComputedStyleSection.prototype.hidden):
2792 (WI.ComputedStyleSection.prototype.applyFilter):
2793 (WI.ComputedStyleSection.prototype.spreadsheetStylePropertyShowProperty):
2794 (WI.ComputedStyleSection.prototype._createTrace):
2795 (WI.ComputedStyleSection.prototype._handlePropertiesChanged):
2796
2797 * UserInterface/Views/ExpandableView.js: Added.
2798 (WI.ExpandableView):
2799 (WI.ExpandableView.prototype.get element):
2800 (WI.ExpandableView.prototype._onDisclosureButtonClick):
2801 (WI.ExpandableView.prototype._update):
2802
2803 * UserInterface/Views/SettingsTabContentView.js:
2804 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2805
2806 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
2807 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.initialLayout):
2808 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.layout):
2809 Replace `_renderOrigin` with WI.StyleOriginView so it could be used by WI.ComputedStyleSection.
2810
2811 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
2812 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
2813
2814 * UserInterface/Views/SpreadsheetStyleProperty.js:
2815 (WI.SpreadsheetStyleProperty.prototype.update):
2816 (WI.SpreadsheetStyleProperty.prototype._isEditable):
2817 (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
2818 Introduce `readOnly` option so WI.SpreadsheetStyleProperty could be used by WI.ComputedStyleSection.
2819
2820 * UserInterface/Views/StyleOriginView.js: Added.
2821 (WI.StyleOriginView):
2822
timothy@apple.comced37162018-11-27 21:16:07 +000028232018-11-27 Timothy Hatcher <timothy@apple.com>
2824
2825 Web Inspector: Add support for forcing color scheme appearance in DOM tree.
2826 https://bugs.webkit.org/show_bug.cgi?id=191820
2827 rdar://problem/46153172
2828
2829 Reviewed by Devin Rousso.
2830
2831 * Localizations/en.lproj/localizedStrings.js: Updated.
2832 * UserInterface/Controllers/CSSManager.js:
2833 (WI.CSSManager):
2834 (WI.CSSManager.prototype.get defaultAppearance): Added.
2835 (WI.CSSManager.prototype.get forcedAppearance): Added.
2836 (WI.CSSManager.prototype.set forcedAppearance): Added.
2837 (WI.CSSManager.prototype.canForceAppearance): Added.
2838 (WI.CSSManager.prototype.defaultAppearanceDidChange): Added.
2839 * UserInterface/Images/Appearance.svg: Added.
2840 * UserInterface/Protocol/PageObserver.js:
2841 (WI.PageObserver.prototype.defaultAppearanceChanged): Added.
2842 * UserInterface/Views/DOMTreeContentView.js:
2843 (WI.DOMTreeContentView):
2844 (WI.DOMTreeContentView.prototype.get navigationItems):
2845 (WI.DOMTreeContentView.prototype._defaultAppearanceDidChange): Added.
2846 (WI.DOMTreeContentView.prototype._toggleAppearance): Added.
2847
mattbaker@apple.com6077fe62018-11-27 19:41:17 +000028482018-11-27 Matt Baker <mattbaker@apple.com>
2849
mattbaker@apple.comd8a45b62018-11-27 21:06:52 +00002850 Web Inspector: Cookies table needs copy keyboard shortcut and context menu support
2851 https://bugs.webkit.org/show_bug.cgi?id=191482
2852 <rdar://problem/45953002>
2853
2854 Reviewed by Joseph Pecoraro.
2855
2856 * UserInterface/Views/CookieStorageContentView.js:
2857 (WI.CookieStorageContentView.prototype.handleCopyEvent):
2858 (WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
2859 As with Delete, if the target row is selected, all selected rows are copied.
2860 Otherwise only the target row is copied. This distinction will be surfaced
2861 in the UI in https://webkit.org/b/191095.
2862
2863 (WI.CookieStorageContentView.prototype.tablePopulateCell):
2864 (WI.CookieStorageContentView.prototype._cookiesAtIndexes):
2865 (WI.CookieStorageContentView.prototype._formatCookiesAsText):
2866 (WI.CookieStorageContentView.prototype._formatCookiePropertyForColumn):
2867 (WI.CookieStorageContentView):
2868 Break Cookie property formatting into a helper method, which is used for
2869 formatting Table cells and creating plain text for the clipboard.
2870
2871 * UserInterface/Views/Table.js:
2872 (WI.Table.prototype.get columns):
2873
28742018-11-27 Matt Baker <mattbaker@apple.com>
2875
mattbaker@apple.com6077fe62018-11-27 19:41:17 +00002876 Web Inspector: Table selection should be handled by a SelectionController
2877 https://bugs.webkit.org/show_bug.cgi?id=191977
2878 <rdar://problem/46253093>
2879
2880 Reviewed by Devin Rousso.
2881
2882 Add a SelectionController class, which manages an IndexSet of selected
2883 items, and provides operations for adding and removing items from the
2884 selection. Complex behaviors such as shift-clicking to select a range of
2885 items, and updating the selection using the keyboard, are forwarded to
2886 the controller using special-purpose methods that accept DOM Event objects.
2887
2888 * UserInterface/Base/Utilities.js:
2889
2890 * UserInterface/Controllers/SelectionController.js: Added.
2891 (WI.SelectionController):
2892 (WI.SelectionController.prototype.get delegate):
2893 (WI.SelectionController.prototype.get lastSelectedItem):
2894 (WI.SelectionController.prototype.get selectedItems):
2895 (WI.SelectionController.prototype.get allowsMultipleSelection):
2896 (WI.SelectionController.prototype.set allowsMultipleSelection):
2897 (WI.SelectionController.prototype.get numberOfItems):
2898 (WI.SelectionController.prototype.hasSelectedItem):
2899 (WI.SelectionController.prototype.selectItem):
2900 (WI.SelectionController.prototype.deselectItem):
2901 (WI.SelectionController.prototype.selectAll):
2902 (WI.SelectionController.prototype.deselectAll):
2903 (WI.SelectionController.prototype.removeSelectedItems):
2904 (WI.SelectionController.prototype.reset):
2905 (WI.SelectionController.prototype.didRemoveItem):
2906 (WI.SelectionController.prototype.handleKeyDown):
2907 (WI.SelectionController.prototype.handleItemMouseDown.normalizeRange):
2908 (WI.SelectionController.prototype.handleItemMouseDown):
2909 (WI.SelectionController.prototype._deselectAllAndSelect):
2910 (WI.SelectionController.prototype._selectItemsFromArrowKey):
2911 (WI.SelectionController.prototype._nextSelectableIndex):
2912 (WI.SelectionController.prototype._previousSelectableIndex):
2913 (WI.SelectionController.prototype._updateSelectedItems):
2914
2915 * UserInterface/Main.html:
2916 * UserInterface/Test.html:
2917
2918 * UserInterface/Views/Table.js:
2919 (WI.Table):
2920 (WI.Table.prototype.get selectedRow):
2921 (WI.Table.prototype.get selectedRows):
2922 (WI.Table.prototype.get allowsMultipleSelection):
2923 (WI.Table.prototype.set allowsMultipleSelection):
2924 (WI.Table.prototype.isRowSelected):
2925 (WI.Table.prototype.reloadData):
2926 (WI.Table.prototype.selectRow):
2927 (WI.Table.prototype.deselectRow):
2928 (WI.Table.prototype.selectAll):
2929 (WI.Table.prototype.deselectAll):
2930 (WI.Table.prototype.removeRow):
2931 (WI.Table.prototype.removeSelectedRows):
2932 (WI.Table.prototype.selectionControllerSelectionDidChange):
2933 (WI.Table.prototype.selectionControllerNumberOfItems):
2934 (WI.Table.prototype.selectionControllerNextSelectableIndex):
2935 (WI.Table.prototype.selectionControllerPreviousSelectableIndex):
2936 (WI.Table.prototype._handleKeyDown):
2937 (WI.Table.prototype._handleMouseDown):
2938 (WI.Table.prototype._removeRows):
2939 (WI.Table.prototype._toggleSelectedRowStyle):
2940 (WI.Table.prototype._selectRowsFromArrowKey): Deleted.
2941 (WI.Table.prototype._handleMouseDown.normalizeRange): Deleted.
2942 (WI.Table.prototype._deselectAllAndSelect): Deleted.
2943 (WI.Table.prototype._notifySelectionDidChange): Deleted.
2944 (WI.Table.prototype._updateSelectedRows): Deleted.
2945
drousso@apple.com3842b8e2018-11-26 18:20:55 +000029462018-11-26 Devin Rousso <drousso@apple.com>
2947
drousso@apple.com4ff7fa12018-11-26 19:01:04 +00002948 Web Inspector: "No Filter Results" in navigation sidebar should have a button to clear filters
2949 https://bugs.webkit.org/show_bug.cgi?id=191916
2950
2951 Reviewed by Joseph Pecoraro.
2952
2953 * UserInterface/Views/NavigationSidebarPanel.js:
2954 (WI.NavigationSidebarPanel.prototype.resetFilter): Added.
2955 (WI.NavigationSidebarPanel.prototype._checkForEmptyFilterResults.checkTreeOutlineForEmptyFilterResults):
2956
2957 * UserInterface/Views/FilterBar.js:
2958 (WI.FilterBar.prototype.clear):
2959
2960 * UserInterface/Views/FilterBarButton.js:
2961 (WI.FilterBarButton.prototype.toggle):
2962
2963 * UserInterface/Views/ResourceSidebarPanel.js:
2964 (WI.ResourceSidebarPanel.prototype.resetFilter): Added.
2965 * UserInterface/Views/StorageSidebarPanel.js:
2966 (WI.StorageSidebarPanel.prototype.resetFilter): Added.
2967
2968 * UserInterface/Views/AuditTestContentView.js:
2969 (WI.AuditTestContentView.prototype.showFilteredPlaceholder):
2970 * UserInterface/Views/NetworkTableContentView.js:
2971 (WI.NetworkTableContentView.prototype._showEmptyFilterResultsMessage):
2972
2973 * UserInterface/Views/Main.css:
2974 (.message-text-view > .message + button): Added.
2975
2976 * Localizations/en.lproj/localizedStrings.js:
2977
29782018-11-26 Devin Rousso <drousso@apple.com>
2979
drousso@apple.com3842b8e2018-11-26 18:20:55 +00002980 Web Inspector: Audit: automatically add to tab bar when the experimental setting is enabled
2981 https://bugs.webkit.org/show_bug.cgi?id=191659
2982
2983 Reviewed by Joseph Pecoraro.
2984
2985 * UserInterface/Views/SettingsTabContentView.js:
2986 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
2987
2988 * UserInterface/Base/Main.js:
2989 (WI.loaded):
2990 Drive-by: use existing constants instead of hard-coded strings for consistency.
2991
drousso@apple.com1a4ff492018-11-25 22:11:24 +000029922018-11-25 Devin Rousso <drousso@apple.com>
2993
2994 Web Inspector: Timelines: add Media timeline
2995 https://bugs.webkit.org/show_bug.cgi?id=191625
2996
2997 Reviewed by Matt Baker.
2998
2999 Add a new timeline to Timelines for media related events (e.g. event/fullscreen/low-power).
3000 Mimics what is visible by using the same instrumentation points as the Network tab when
3001 "Group Media Requests" is enabled.
3002
3003 * UserInterface/Models/MediaInstrument.js: Added.
3004 (WI.MediaInstrument):
3005 (WI.MediaInstrument.supported):
3006 (WI.MediaInstrument.prototype.get timelineRecordType):
3007 (WI.MediaInstrument.prototype.startInstrumentation):
3008 (WI.MediaInstrument.prototype.stopInstrumentation):
3009
3010 * UserInterface/Models/MediaTimelineRecord.js: Added.
3011 (WI.MediaTimelineRecord):
3012 (WI.MediaTimelineRecord.prototype.get eventType):
3013 (WI.MediaTimelineRecord.prototype.get domNode):
3014 (WI.MediaTimelineRecord.prototype.get domEvent):
3015 (WI.MediaTimelineRecord.prototype.get isLowPower):
3016 (WI.MediaTimelineRecord.prototype.get displayName):
3017 (WI.MediaTimelineRecord.prototype.saveIdentityToCookie):
3018
3019 * UserInterface/Views/MediaTimelineDataGridNode.js: Added.
3020 (WI.MediaTimelineDataGridNode):
3021 (WI.MediaTimelineDataGridNode.prototype.get records):
3022 (WI.MediaTimelineDataGridNode.prototype.get data):
3023 (WI.MediaTimelineDataGridNode.prototype.createCellContent):
3024 (WI.MediaTimelineDataGridNode.prototype.iconClassNames):
3025 (WI.MediaTimelineDataGridNode.prototype.filterableDataForColumn):
3026
3027 * UserInterface/Views/MediaTimelineOverviewGraph.js: Added.
3028 (WI.MediaTimelineOverviewGraph):
3029 (WI.MediaTimelineOverviewGraph.prototype.reset):
3030 (WI.MediaTimelineOverviewGraph.prototype.shown):
3031 (WI.MediaTimelineOverviewGraph.prototype.hidden):
3032 (WI.MediaTimelineOverviewGraph.prototype.layout):
3033 (WI.MediaTimelineOverviewGraph.prototype.updateSelectedRecord):
3034 (WI.MediaTimelineOverviewGraph.prototype._handleRecordAdded):
3035 * UserInterface/Views/MediaTimelineOverviewGraph.css: Added.
3036 (.timeline-overview-graph.media > .timeline-record-bar):
3037 (.timeline-overview-graph.media > .timeline-record-bar > .segment):
3038
3039 * UserInterface/Views/MediaTimelineView.js: Added.
3040 (WI.MediaTimelineView):
3041 (WI.MediaTimelineView.prototype.get secondsPerPixel):
3042 (WI.MediaTimelineView.prototype.get selectionPathComponents):
3043 (WI.MediaTimelineView.prototype.closed):
3044 (WI.MediaTimelineView.prototype.reset):
3045 (WI.MediaTimelineView.prototype.dataGridSortComparator.compareDOMNodes):
3046 (WI.MediaTimelineView.prototype.dataGridSortComparator.):
3047 (WI.MediaTimelineView.prototype.dataGridSortComparator):
3048 (WI.MediaTimelineView.prototype.layout):
3049 (WI.MediaTimelineView.prototype._processPendingRecords):
3050 (WI.MediaTimelineView.prototype._handleRecordAdded):
3051 (WI.MediaTimelineView.prototype._handleSelectionPathComponentSiblingSelected):
3052 * UserInterface/Views/MediaTimelineView.css: Added.
3053 (.timeline-view.media > .data-grid):
3054
3055 * UserInterface/Views/DOMEventsBreakdownView.js:
3056 (WI.DOMEventsBreakdownView.prototype.layout):
3057 * UserInterface/Views/DOMNodeEventsContentView.js:
3058 (WI.DOMNodeEventsContentView.prototype.initialLayout):
3059 * UserInterface/Views/NetworkDOMNodeDetailView.js:
3060 (WI.NetworkDOMNodeDetailView):
3061 (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):
3062 * UserInterface/Views/NetworkTableContentView.js:
3063 (WI.NetworkTableContentView):
3064 (WI.NetworkTableContentView.prototype.get filterNavigationItems):
3065 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
3066 (WI.NetworkTableContentView.prototype._showDetailView):
3067 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry):
3068 Remove passing of `startTimestamp` to `WI.DOMEventsBreakdownView`, as we should be showing
3069 absolute timestamps for each event, not relative to the start of the recording.
3070
3071 * UserInterface/Views/TimelineIcons.css:
3072 (.media-icon .icon): Added.
3073 (.dom-event-record .icon): Added.
3074 (.dom-event-record.fullscreen .icon): Added.
3075 (.low-power-record .icon): Added.
3076
3077 * UserInterface/Controllers/TimelineManager.js:
3078 (WI.TimelineManager.availableTimelineTypes):
3079 (WI.TimelineManager.prototype.capturingStarted):
3080 (WI.TimelineManager.prototype.capturingStopped):
3081 (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
3082 (WI.TimelineManager.prototype._handleDOMNodeDidFireEvent): Added.
3083 (WI.TimelineManager.prototype._handleDOMNodeLowPowerChanged): Added.
3084
3085 * UserInterface/Views/TimelineRuler.js:
3086 (WI.TimelineRuler.prototype.clearMarkers):
3087 (WI.TimelineRuler.prototype._handleClick):
3088 * UserInterface/Views/TimelineOverview.js:
3089 (WI.TimelineOverview.prototype._timelineRulerMouseClicked):
3090 * UserInterface/Models/TimelineRecording.js:
3091 (WI.TimelineRecording.prototype.reset):
3092 (WI.TimelineRecording.prototype.addEventMarker):
3093 (WI.TimelineRecording.prototype.addRecord):
3094 (WI.TimelineRecording.prototype._keyForRecord):
3095 Drive-by: rework the logic for "click" event pass-through to the graph underneath.
3096
3097 * UserInterface/Models/Instrument.js:
3098 (WI.Instrument.createForTimelineType):
3099
3100 * UserInterface/Models/TimelineRecord.js:
3101
3102 * UserInterface/Views/TimelineTabContentView.js:
3103 (WI.TimelineTabContentView.displayNameForTimelineType):
3104 (WI.TimelineTabContentView.iconClassNameForTimelineType):
3105 (WI.TimelineTabContentView.genericClassNameForTimelineType):
3106 (WI.TimelineTabContentView.iconClassNameForRecord):
3107 (WI.TimelineTabContentView.displayNameForRecord):
3108 * UserInterface/Views/TimelineRecordBar.css:
3109 (.timeline-record-bar.timeline-record-type-media > .segment): Added.
3110
3111 * UserInterface/Views/ContentView.js:
3112 (WI.ContentView.createFromRepresentedObject):
3113 * UserInterface/Views/TimelineOverviewGraph.js:
3114 (WI.TimelineOverviewGraph.createForTimeline):
3115
3116 * UserInterface/Models/ScriptTimelineRecord.js:
3117 (WI.ScriptTimelineRecord.EventType.displayName):
3118
3119 * UserInterface/Main.html:
3120 * UserInterface/Test.html:
3121 * Localizations/en.lproj/localizedStrings.js:
3122 * UserInterface/Images/DOMEvent.svg: Added.
3123 * UserInterface/Images/DOMEventFullscreen.svg: Added.
3124 * UserInterface/Images/LowPower.svg: Added.
3125 * UserInterface/Images/MediaInstrument.svg: Added.
3126
mattbaker@apple.com58ce0e12018-11-25 21:44:43 +000031272018-11-25 Matt Baker <mattbaker@apple.com>
3128
3129 Web Inspector: Remove parameters from TreeOutline SelectionDidChange event
3130 https://bugs.webkit.org/show_bug.cgi?id=191770
3131
3132 Reviewed by Devin Rousso.
3133
3134 * UserInterface/Controllers/CallFrameTreeController.js:
3135 (WI.CallFrameTreeController.prototype._treeSelectionDidChange):
3136 * UserInterface/Views/AuditNavigationSidebarPanel.js:
3137 (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
3138 * UserInterface/Views/CanvasSidebarPanel.js:
3139 (WI.CanvasSidebarPanel):
3140 (WI.CanvasSidebarPanel.prototype._treeSelectionDidChange):
3141 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange): Deleted.
3142 * UserInterface/Views/CanvasTabContentView.js:
3143 (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
3144 * UserInterface/Views/DebuggerSidebarPanel.js:
3145 (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
3146 * UserInterface/Views/OpenResourceDialog.js:
3147 (WI.OpenResourceDialog.prototype._treeSelectionDidChange):
3148 * UserInterface/Views/ResourceSidebarPanel.js:
3149 (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
3150 * UserInterface/Views/SearchSidebarPanel.js:
3151 (WI.SearchSidebarPanel.prototype._treeSelectionDidChange):
3152 * UserInterface/Views/StorageSidebarPanel.js:
3153 (WI.StorageSidebarPanel._treeSelectionDidChange):
3154 * UserInterface/Views/TimelineDataGrid.js:
3155 (WI.TimelineDataGrid.prototype._popoverCallStackTreeSelectionDidChange):
3156 (WI.TimelineDataGrid):
3157 * UserInterface/Views/TimelineTabContentView.js:
3158 (WI.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange):
3159 Use `event.target.selectedTreeElement` instead of `event.data.selectedElement`.
3160
3161 * UserInterface/Views/TimelineOverview.js:
3162 (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
3163 (WI.TimelineOverview.prototype._timelinesTreeSelectionDidChange.updateGraphSelectedState): Deleted.
3164 Refactor away the single place `event.data.deselectedElement` was used.
3165
3166 * UserInterface/Views/TreeElement.js:
3167 (WI.TreeElement.prototype.select):
3168 (WI.TreeElement.prototype.deselect):
3169 Remove `selectedElement` and `deselectedElement` from event data.
3170
drousso@apple.com024edb42018-11-20 01:15:15 +000031712018-11-19 Devin Rousso <drousso@apple.com>
3172
3173 Web Inspector: Audit: removing and re-adding the tab will duplicate tests
3174 https://bugs.webkit.org/show_bug.cgi?id=191843
3175
3176 Reviewed by Matt Baker.
3177
3178 * UserInterface/Controllers/AuditManager.js:
3179 (WI.AuditManager.prototype.loadStoredTests):
3180 If we already have tests, don't attempt to load any stored tests.
3181
joepeck@webkit.orgba4c46c2018-11-19 20:51:40 +000031822018-11-19 Joseph Pecoraro <pecoraro@apple.com>
3183
3184 Web Inspector: "Reload Web Inspector" button no longer partially works
3185 https://bugs.webkit.org/show_bug.cgi?id=191773
3186 <rdar://problem/46139932>
3187
3188 Reviewed by Devin Rousso.
3189
3190 * UserInterface/Base/Main.js:
3191 * UserInterface/Debug/UncaughtExceptionReporter.js:
3192 (sheetElement.innerHTML):
3193 * UserInterface/Views/SettingsTabContentView.js:
3194
drousso@apple.coma91d8ee2018-11-17 18:27:42 +000031952018-11-17 Devin Rousso <drousso@apple.com>
3196
3197 Web Inspector: Network: add button to show system certificate dialog
3198 https://bugs.webkit.org/show_bug.cgi?id=191458
3199 <rdar://problem/45977019>
3200
3201 Reviewed by Joseph Pecoraro.
3202
3203 * UserInterface/Controllers/NetworkManager.js:
3204 (WI.NetworkManager.supportsShowCertificate): Added.
3205
3206 * UserInterface/Models/Resource.js:
3207 (WI.Resource.prototype.showCertificate): Added.
3208
3209 * UserInterface/Views/ResourceSecurityContentView.js:
3210 (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
3211 * UserInterface/Views/ResourceSecurityContentView.css:
3212 (.resource-security .details > .show-certificate > .key): Added.
3213 (.resource-security .details > .show-certificate > .key > .error): Added.
3214
3215 * Localizations/en.lproj/localizedStrings.js:
3216
drousso@apple.comada025932018-11-17 02:10:43 +000032172018-11-16 Devin Rousso <drousso@apple.com>
3218
drousso@apple.com131eb812018-11-17 02:14:44 +00003219 Web Inspector: Audit: add default tests
3220 https://bugs.webkit.org/show_bug.cgi?id=191758
3221
3222 Reviewed by Matt Baker.
3223
3224 * UserInterface/Controllers/AuditManager.js:
3225 (WI.AuditManager.prototype.loadStoredTests):
3226 (WI.AuditManager.prototype.addDefaultTestsIfNeeded): Added.
3227 If there are no previously saved tests in the database, automatically add the default set.
3228
3229 * UserInterface/Views/AuditNavigationSidebarPanel.js:
3230 (WI.AuditNavigationSidebarPanel.prototype._addTest):
3231 (WI.AuditNavigationSidebarPanel.prototype._addResult):
3232 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
3233 * UserInterface/Views/AuditNavigationSidebarPanel.css:
3234 (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view): Added.
3235 (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > .message): Added.
3236 (.sidebar > .panel.navigation.audit.has-results:not(.has-tests) > .content > .message-text-view > button): Added.
3237 When the last test is removed, show a placeholder message that allows the user to re-add the
3238 default set of tests.
3239
3240 * UserInterface/Views/NavigationSidebarPanel.js:
3241 (WI.NavigationSidebarPanel.prototype.showEmptyContentPlaceholder):
3242 (WI.NavigationSidebarPanel.prototype._createEmptyContentPlaceholderIfNeeded):
3243
3244 * Localizations/en.lproj/localizedStrings.js:
3245
32462018-11-16 Devin Rousso <drousso@apple.com>
3247
drousso@apple.comada025932018-11-17 02:10:43 +00003248 Web Inspector: Audit: minor style improvements
3249 https://bugs.webkit.org/show_bug.cgi?id=191727
3250
3251 Reviewed by Joseph Pecoraro.
3252
3253 * UserInterface/Controllers/AuditManager.js:
3254 (WI.AuditManager):
3255 (WI.AuditManager.prototype._handleFrameMainResourceDidChange): Added.
3256 Clear test results when the main frame navigates, but don't clear the saved results.
3257
3258 * UserInterface/Models/AuditTestCase.js:
3259 (WI.AuditTestCase.prototype.async run):
3260 * UserInterface/Models/AuditTestCaseResult.js:
3261 (WI.AuditTestCaseResult):
3262 (WI.AuditTestCaseResult.async fromPayload):
3263 (WI.AuditTestCaseResult.prototype.get resolvedDOMNodes): Added.
3264 (WI.AuditTestCaseResult.prototype.toJSON):
3265 Capture the full CSS path for any returned DOM nodes when the test finishes running, so that
3266 if the node moves around the path isn't modified as well.
3267
3268 * UserInterface/Views/AuditTestCaseContentView.js:
3269 (WI.AuditTestCaseContentView.prototype.layout):
3270 Always show the URL for the test when viewing a saved result.
3271
3272 * UserInterface/Views/AuditTestContentView.css:
3273 (.content-view-container > .content-view.audit-test > header p):
3274 (.content-view.audit-test > header):
3275 * UserInterface/Views/AuditTestCaseContentView.css:
3276 (.content-view.audit-test-case > header): Added.
3277 (.content-view.audit-test-case > header h1 > img):
3278 (.content-view.audit-test-case > header > .metadata > .source): Added.
3279 (.content-view.audit-test-case > header > .metadata > .duration):
3280 (.content-view.audit-test-case > section table > tr > td:first-child):
3281 * UserInterface/Views/AuditTestGroupContentView.css:
3282 (.content-view.audit-test-group > header):
3283 Horizontally align items in the header for visual consistency.
3284
joepeck@webkit.org405b46f2018-11-17 01:28:41 +000032852018-11-16 Joseph Pecoraro <pecoraro@apple.com>
3286
joepeck@webkit.orgb143ce22018-11-17 01:28:44 +00003287 Web Inspector: Include default filtering of InspectorBackend.dumpInspectorProtocolMessages with multi target backend
3288 https://bugs.webkit.org/show_bug.cgi?id=191785
3289
3290 Reviewed by Matt Baker.
3291
3292 * UserInterface/Debug/Bootstrap.js:
3293 (dumpMessagesCurrentState):
3294 (applyDumpMessagesState):
3295 (WI.runBootstrapOperations):
3296 Include tri-state for the logs button.
3297
3298 * UserInterface/Protocol/InspectorBackend.js:
3299 (InspectorBackendClass.prototype.set filterMultiplexingBackendInspectorProtocolMessages):
3300 (InspectorBackendClass.prototype.get filterMultiplexingBackendInspectorProtocolMessages):
3301 (InspectorBackendClass.prototype._startOrStopAutomaticTracing):
3302 Add new filtering state (the Setting already got added in the past).
3303
3304 * UserInterface/Protocol/LoggingProtocolTracer.js:
3305 (WI.LoggingProtocolTracer):
3306 (WI.LoggingProtocolTracer.prototype.set filterMultiplexingBackend):
3307 (WI.LoggingProtocolTracer.prototype.get filterMultiplexingBackend):
3308 (WI.LoggingProtocolTracer.prototype._processEntry):
3309 Perform new filtering.
3310
33112018-11-16 Joseph Pecoraro <pecoraro@apple.com>
3312
joepeck@webkit.org405b46f2018-11-17 01:28:41 +00003313 Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Local Inspector)
3314 https://bugs.webkit.org/show_bug.cgi?id=191740
3315 <rdar://problem/45470897>
3316
3317 Reviewed by Timothy Hatcher.
3318
3319 * UserInterface/Protocol/Connection.js:
3320 (InspectorBackend.Connection.prototype._dispatchResponse):
3321 Hide the TargetAgent does not exist message. This is necessary so that WebKitLegacy
3322 tests don't include this line in output each test.
3323
3324 * UserInterface/Test.html:
3325 * UserInterface/Test/Test.js:
3326 (WI.loaded):
3327 (WI.resetMainExecutionContext):
3328 (WI.performOneTimeFrontendInitializationsUsingTarget):
3329 Behave more like Main.js and initialize a MultiplexingBackendTarget when the
3330 TargetAgent is available.
3331
3332 * UserInterface/Protocol/InspectorBackend.js:
3333 (InspectorBackendClass.prototype.runAfterPendingDispatches):
3334 Use the main target, a.k.a. the page connection. The backend target's
3335 messages don't have any responses, so this was effectively not waiting
3336 at all.
3337
mattbaker@apple.comb9d3ef02018-11-16 22:45:13 +000033382018-11-16 Matt Baker <mattbaker@apple.com>
3339
3340 Web Inspector: TreeOutline shouldn't select first child of an expanded element on right arrow key
3341 https://bugs.webkit.org/show_bug.cgi?id=191766
3342
3343 Reviewed by Devin Rousso.
3344
3345 * UserInterface/Views/TreeOutline.js:
3346 (WI.TreeOutline.prototype._treeKeyDown):
3347
mattbaker@apple.com19ad3fb2018-11-14 22:54:18 +000033482018-11-14 Matt Baker <mattbaker@apple.com>
3349
3350 Web Inspector: Table should recalculate scrollable height when resized
3351 https://bugs.webkit.org/show_bug.cgi?id=191328
3352 <rdar://problem/45854412>
3353
3354 Reviewed by Devin Rousso.
3355
3356 * UserInterface/Views/NetworkTableContentView.js:
3357 (WI.NetworkTableContentView.prototype._hideDetailView):
3358 Force table columns to layout after hiding the detail view.
3359
3360 * UserInterface/Views/Table.js:
3361 (WI.Table):
3362 (WI.Table.prototype.showColumn):
3363 Call `_resizeColumnsAndFiller` instead of `resize`. The latter also cleared
3364 `_cachedWidth`, which isn't unnecessary since the width hasn't changed.
3365
3366 (WI.Table.prototype.layout):
3367 previously `_resizeColumnsAndFiller` always occurred after `_updateVisibleRows`,
3368 it was just a matter of whether the cached width and height were cleared first.
3369 That now happens in `sizeDidChange`.
3370
3371 (WI.Table.prototype.sizeDidChange):
3372 (WI.Table.prototype._updateVisibleRows):
3373 (WI.Table.prototype.resize): Deleted.
3374 Internally this cleared the cached width and height, which moved to `sizeDidChange`.
3375 Externally this was used by NetworkTableContentView to force columns to
3376 layout after hiding the details view. Calling `updateLayout` on the table
3377 accomplishes the same thing using the standard View API.
3378
3379 (WI.Table.prototype._resizeColumnsAndFiller):
3380 Only update the cached width, since the height will already have been
3381 updated. The number of rows doesn't change during this method, so that
3382 check was removed.
3383
drousso@apple.com1a95e122018-11-14 22:39:25 +000033842018-11-14 Devin Rousso <drousso@apple.com>
3385
3386 Web Inspector: REGRESSION(r236540): Debugger: breakpoints are sorted alphabetically instead of numerically
3387 https://bugs.webkit.org/show_bug.cgi?id=191560
3388
3389 Reviewed by Joseph Pecoraro.
3390
3391 When sorting breakpoints, if the `WI.TreeElement`s being compared both contain instances of
3392 `WI.Breakpoint`, sort by `WI.SourceCodeLocation` instead of title.
3393
3394 We only do this for `WI.Breakpoint` because they are the only debuggable item that has a
3395 `WI.SourceCodeLocation` (e.g. `WI.EventBreakpoint` is just an event name string).
3396
3397 * UserInterface/Views/DebuggerSidebarPanel.js:
3398 (WI.DebuggerSidebarPanel.prototype._addTreeElement):
3399 (WI.DebuggerSidebarPanel.prototype._compareBreakpointTreeElements): Added.
3400 (WI.DebuggerSidebarPanel.prototype._addIssue):
3401 (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Deleted.
3402 (WI.DebuggerSidebarPanel.prototype._compareTreeElements): Deleted.
3403
nvasilyev@apple.comd65334b2018-11-14 22:28:52 +000034042018-11-14 Nikita Vasilyev <nvasilyev@apple.com>
3405
3406 Web Inspector: Styles: shift-clicking on a property should extend selection
3407 https://bugs.webkit.org/show_bug.cgi?id=191575
3408 <rdar://problem/46012855>
3409
3410 Reviewed by Devin Rousso.
3411
3412 When there's at least one property is selected, Shift-clicking another property should extend the selection.
3413 Pressing Up or Down keys while holding Shift also extends the selection.
3414
3415 Remove unnecessary `_startedSelection`. Use `hasSelectedProperties` and `_isMousePressed` instead.
3416
3417 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3418 `_isMousePressed` was set to `true` by mistake, causing numerous assertion fails.
3419
3420 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focusIndex):
3421 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hasSelectedProperties): Renamed from _hasSelectedProperties.
3422 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.extendSelectedProperties): Added.
3423 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseLeave): Removed.
3424 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy):
3425
3426 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3427 Implement Shift-ArrowUp/ArrowDown keys.
3428
3429 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3430 (WI.SpreadsheetCSSStyleDeclarationSection):
3431 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyBlur):
3432 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseLeave): Removed.
3433 This was only used to set _startedSelection.
3434
3435 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
3436 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowClick):
3437 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
3438 Remove _startedSelection and use hasSelectedProperties method instead.
3439
3440 * UserInterface/Views/SpreadsheetStyleProperty.js:
3441 (WI.SpreadsheetStyleProperty):
3442 Remove spreadsheetStylePropertyMouseLeave since it is no longer used.
3443
drousso@apple.com1d97eb62018-11-14 22:01:03 +000034442018-11-14 Devin Rousso <drousso@apple.com>
3445
drousso@apple.com298739e2018-11-14 22:03:14 +00003446 Web Inspector: Canvas: send a call stack with each action instead of an array of call frames
3447 https://bugs.webkit.org/show_bug.cgi?id=191628
3448
3449 Reviewed by Dean Jackson.
3450
3451 * UserInterface/Models/Recording.js:
3452 (WI.Recording.prototype.async swizzle):
3453
3454 * UserInterface/Models/RecordingAction.js:
3455 (WI.RecordingAction.fromPayload):
3456 (WI.RecordingAction.prototype.async swizzle):
3457
34582018-11-14 Devin Rousso <drousso@apple.com>
3459
drousso@apple.com1d97eb62018-11-14 22:01:03 +00003460 Web Inspector: add drag+drop for importing Audits and Recordings
3461 https://bugs.webkit.org/show_bug.cgi?id=191566
3462
3463 Reviewed by Joseph Pecoraro.
3464
3465 Reorganize the file loading logic for the Audit and Canvas tabs/managers. Add "drop" event
3466 handlers to the tabs that add and show the corresponding object for the imported data.
3467
3468 * UserInterface/Views/AuditTabContentView.js:
3469 (WI.AuditTabContentView):
3470 (WI.AuditTabContentView.prototype._handleDragOver): Added.
3471 (WI.AuditTabContentView.prototype._handleDrop): Added.
3472 * UserInterface/Views/CanvasTabContentView.js:
3473 (WI.CanvasTabContentView):
3474 (WI.CanvasTabContentView.prototype._addCanvas):
3475 (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
3476 (WI.CanvasTabContentView.prototype._handleDragOver): Added.
3477 (WI.CanvasTabContentView.prototype._handleDrop): Added.
3478
3479 * UserInterface/Controllers/AuditManager.js:
3480 (WI.AuditManager.prototype.async processJSON): Added.
3481 (WI.AuditManager.prototype.export):
3482 (WI.AuditManager.prototype.import): Deleted.
3483 * UserInterface/Controllers/CanvasManager.js:
3484 (WI.CanvasManager.prototype.processJSON): Added.
3485 (WI.CanvasManager.prototype.importRecording): Deleted.
3486
3487 * UserInterface/Views/AuditNavigationSidebarPanel.js:
3488 (WI.AuditNavigationSidebarPanel):
3489 (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
3490 (WI.AuditNavigationSidebarPanel.prototype._handleImportButtonNavigationItemClicked):
3491 * UserInterface/Views/CanvasSidebarPanel.js:
3492 (WI.CanvasSidebarPanel):
3493 (WI.CanvasSidebarPanel.prototype._handleImportButtonNavigationItemClicked): Added.
3494 (WI.CanvasSidebarPanel.prototype._recordingChanged):
3495 (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
3496
3497 * UserInterface/Views/CanvasOverviewContentView.js:
3498 (WI.CanvasOverviewContentView):
3499 (WI.CanvasOverviewContentView.prototype._handleImportButtonNavigationItemClicked): Added.
3500
3501 * UserInterface/Base/FileUtilities.js:
3502 (WI.FileUtilities.save): Added.
3503 (WI.FileUtilities.importText): Added.
3504 (WI.FileUtilities.importJSON): Added.
3505 (WI.FileUtilities.async readText): Added.
3506 (WI.FileUtilities.async readJSON): Added.
3507 (WI.saveDataToFile): Deleted.
3508 (WI.loadDataFromFile): Deleted.
3509 * UserInterface/Base/Main.js:
3510 (WI._contextMenuRequested):
3511 (WI._save):
3512 (WI._saveAs):
3513 * UserInterface/Views/ContextMenuUtilities.js:
3514 (WI.appendContextMenuItemsForSourceCode):
3515 * UserInterface/Views/LogContentView.js:
3516 (WI.LogContentView.prototype._handleContextMenuEvent):
3517 * UserInterface/Views/NetworkTableContentView.js:
3518 (WI.NetworkTableContentView.prototype._exportHAR):
3519 * UserInterface/Views/RecordingContentView.js:
3520 (WI.RecordingContentView.prototype._exportRecording):
3521 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
3522 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._save):
3523 Move file related functions into a static class container.
3524
3525 * Localizations/en.lproj/localizedStrings.js:
3526
joepeck@webkit.org2c9574f2018-11-14 21:03:49 +000035272018-11-14 Joseph Pecoraro <pecoraro@apple.com>
3528
joepeck@webkit.org6accdc12018-11-14 21:59:06 +00003529 Web Inspector: Include target identifier in protocol logging
3530 https://bugs.webkit.org/show_bug.cgi?id=191478
3531
3532 Reviewed by Devin Rousso.
3533
3534 * UserInterface/Protocol/Connection.js:
3535 (InspectorBackend.Connection.prototype._dispatchResponse):
3536 (InspectorBackend.Connection.prototype._dispatchEvent):
3537 (InspectorBackend.Connection.prototype._sendMessageToBackend):
3538 Call tracer log methods with the connection.
3539
3540 * UserInterface/Debug/CapturingProtocolTracer.js:
3541 * UserInterface/Protocol/ProtocolTracer.js:
3542 * UserInterface/Protocol/LoggingProtocolTracer.js:
3543 (WI.LoggingProtocolTracer):
3544 (WI.LoggingProtocolTracer.prototype.logFrontendException):
3545 (WI.LoggingProtocolTracer.prototype.logFrontendRequest):
3546 (WI.LoggingProtocolTracer.prototype.logWillHandleResponse):
3547 (WI.LoggingProtocolTracer.prototype.logDidHandleResponse):
3548 (WI.LoggingProtocolTracer.prototype.logDidHandleEvent):
3549 Include the connection in log methods.
3550
3551 (WI.LoggingProtocolTracer.prototype.logProtocolError):
3552 Removed, this is never called.
3553
3554 (WI.LoggingProtocolTracer.prototype._processEntry):
3555 Include the target identifier in entry messages.
3556
35572018-11-14 Joseph Pecoraro <pecoraro@apple.com>
3558
joepeck@webkit.org2c9574f2018-11-14 21:03:49 +00003559 Web Inspector: Keep Web Inspector window alive across process swaps (PSON) (Remote Inspector)
3560 https://bugs.webkit.org/show_bug.cgi?id=191494
3561 <rdar://problem/45469854>
3562
3563 Reviewed by Devin Rousso.
3564
3565 This starts introducing multi-target support into the Web Inspector frontend.
3566 Specifically a backend connection that is persistent, but has the ability to
3567 connect to and transition between Page targets received through that backend
3568 connection.
3569
3570 This patch introduces the concept of a "Backend Target" which is the single
3571 connection that the frontend contains to a backend. The old way of connecting
3572 directly to a target is still supported. In that case the frontend constructs
3573 a DirectBackendTarget for the debuggable type the frontend was spawns for.
3574 However, if the frontend opens and has a TargetAgent, then it is likely
3575 connected to a multi-target supporting backend and instead constructs a
3576 MultiplexingBackendTarget, and will receive further information about
3577 sub-targets to connect to. The only sub-target at the moment is a Page
3578 sub-target.
3579
3580 As part of bringing up multi-target support this adds a few measures to
3581 handle situations where the frontend is playing fast and loose with agents.
3582 When the frontend does `FooAgent.method` it intends that to be performed
3583 on the "main" target being debugged. Likewise when the frontend loops
3584 over targets it expects them to be the debuggable targets. This patch
3585 profiles a new implementation of `WI.mainTarget` and `WI.targets` to
3586 match the assumptions being made by the frontend.
3587
3588 - In a direct-target world, there is a single target which
3589 should be used for global agents and in WI.targets.
3590
3591 - In a multi-target world, the page target is the one that
3592 should be used for global agents and WI.targets is the list
3593 of sub-targets (excluding the MultiplexingBackendTarget).
3594
3595 In a multi-target world, there are now commonly two Targets. The
3596 MultiplexingBackendTarget and a PageTarget sub-target. In the future
3597 this may include more targets, such as ServiceWorkers, DedicatedWorkers,
3598 and perhaps even frames.
3599
3600 In a multi-target world, the frontend is immediately told about targets
3601 as soon as it opens (via Target.targetCreated). In order to support
3602 this, frontend initialization happens without a main target being available.
3603 So this makes a few small changes to frontend initialization to perform
3604 a bit of work once we know what the main target is.
3605
3606 During a page transition the frontend is told to destroy existing targets
3607 and is soon after told about any new page targets (via Target.targetDestroyed
3608 and Target.targetCreated). The frontend special cases this page transition.
3609 It expects only one Page target to be alive at any time, accessible through
3610 WI.pageTarget. When a page transition happens the WI.pageTarget changes, and
3611 the frontend performs a bit of work to prepare the UI to handle the transition:
3612 `<Manager>.transitionPageTarget` / WI.Notification.TransitionPageTarget.
3613 For the most part the UI behaves fine as long once there are main frame
3614 change and main resource change events, but those other events allow
3615 the frontend to respond to the specific page transition cases.
3616
3617 * UserInterface/Base/Main.js:
3618 (WI.loaded):
3619 (WI.initializeBackendTarget):
3620 (WI.initializePageTarget):
3621 (WI.transitionPageTarget):
3622 (WI.terminatePageTarget):
3623 (WI.resetMainExecutionContext):
3624 (WI.redirectGlobalAgentsToConnection):
3625 (WI.contentLoaded):
3626 New global functions for target initialization
3627 and page transitioning.
3628
3629 * UserInterface/Test/Test.js:
3630 (WI.loaded):
3631 (WI.initializeBackendTarget):
3632 (WI.initializePageTarget):
3633 (WI.transitionPageTarget):
3634 (WI.terminatePageTarget):
3635 (WI.resetMainExecutionContext):
3636 (WI.redirectGlobalAgentsToConnection):
3637 New global functions for target initialization.
3638 Tests continue to be a direct connection to the Page.
3639
3640 * UserInterface/Protocol/TargetObserver.js:
3641 (WI.TargetObserver.prototype.targetCreated):
3642 (WI.TargetObserver.prototype.targetDestroyed):
3643 (WI.TargetObserver.prototype.dispatchMessageFromTarget):
3644 New observer goes to the manager.
3645
3646 * UserInterface/Controllers/TargetManager.js:
3647 (WI.TargetManager):
3648 (WI.TargetManager.prototype.get targets):
3649 (WI.TargetManager.prototype.get allTargets):
3650 (WI.TargetManager.prototype.targetForIdentifier):
3651 (WI.TargetManager.prototype.targetCreated):
3652 (WI.TargetManager.prototype.targetDestroyed):
3653 (WI.TargetManager.prototype.dispatchMessageFromTarget):
3654 (WI.TargetManager.prototype.createMultiplexingBackendTarget):
3655 (WI.TargetManager.prototype.createDirectBackendTarget):
3656 (WI.TargetManager.prototype._addTarget):
3657 (WI.TargetManager.prototype._removeTarget):
3658 (WI.TargetManager.prototype._createTarget):
3659 (WI.TargetManager.prototype._checkAndHandlePageTargetTransition):
3660 (WI.TargetManager.prototype._checkAndHandlePageTargetTermination):
3661 (WI.TargetManager.prototype.addTarget): Deleted.
3662 (WI.TargetManager.prototype.removeTarget): Deleted.
3663 (WI.TargetManager.prototype.initializeMainTarget): Deleted.
3664 TargetManager is where we handle creating and destroying targets
3665 and their connections. In order to simplify things a bit we make
3666 `WI.targets`, which goes through `get targets()` an array instead
3667 of a Set. And this includes only the sub-targets.
3668
3669 * UserInterface/Controllers/WorkerManager.js:
3670 (WI.WorkerManager.prototype.workerCreated):
3671 (WI.WorkerManager.prototype.workerTerminated):
3672 Workers are still special-target-like things that multiplex through
3673 WorkerAgent instead of TargetAgent. We'd like to promote these to
3674 be full targets in the future.
3675
3676 * UserInterface/Protocol/DirectBackendTarget.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/MainTarget.js.
3677 (WI.DirectBackendTarget):
3678 (WI.DirectBackendTarget.connectionInfoForDebuggable):
3679 (WI.DirectBackendTarget.prototype.get mainResource):
3680 (WI.DirectBackendTarget.prototype.set mainResource):
3681 This is the only "MainTarget" class. It is the backend target for a direct connection.
3682
3683 * UserInterface/Protocol/MultiplexingBackendTarget.js:
3684 (WI.MultiplexingBackendTarget):
3685 (WI.MultiplexingBackendTarget.prototype.initialize):
3686 (WI.MultiplexingBackendTarget.prototype.get name):
3687 (WI.MultiplexingBackendTarget.prototype.get executionContext):
3688 (WI.MultiplexingBackendTarget.prototype.get mainResource):
3689 This is the new backend target for a multi-target connection.
3690 We don't expect it to be treated like other targets, so we don't
3691 expect anyone to ask it for resources/executionContext/name info.
3692
3693 * UserInterface/Controllers/RuntimeManager.js:
3694 (WI.TargetManager.prototype.evaluateInInspectedWindow):
3695 This can be triggered by watch expressions before any target, and
3696 therefore execution context, is available. Just return null, when
3697 an execution context is available those clients will try again.
3698
3699 * UserInterface/Debug/Bootstrap.js:
3700 Provide an WI.isEngineeringBuild boolean that can be used for various
3701 debugging features.
3702
3703 * UserInterface/Main.html:
3704 * UserInterface/Test.html:
3705 New resources.
3706
3707 * UserInterface/Protocol/InspectorBackend.js:
3708 (InspectorBackendClass.prototype.dispatch):
3709 (InspectorBackendClass.prototype.runAfterPendingDispatches):
3710 (InspectorBackend.Agent):
3711 `InspectorBackend.mainConnection` was renamed `InspectorBackend.backendConnection`.
3712
3713 * UserInterface/Protocol/Connection.js:
3714 (InspectorBackend.Connection):
3715 (InspectorBackend.Connection.prototype._dispatchResponse):
3716 (InspectorBackend.Connection.prototype._sendCommandToBackendWithCallback):
3717 (InspectorBackend.Connection.prototype._sendCommandToBackendExpectingPromise):
3718 (InspectorBackend.BackendConnection):
3719 (InspectorBackend.BackendConnection.prototype.sendMessageToBackend):
3720 (InspectorBackend.WorkerConnection):
3721 (InspectorBackend.TargetConnection):
3722 (InspectorBackend.TargetConnection.sendMessageToBackend):
3723 Use a global sequence id to make filtering a bit easier in protocol tracing.
3724 TargetConnection is identical to WorkerConnection except it uses TargetAgent
3725 instead of WorkerAgent to perform multiplexing.
3726
3727 * UserInterface/Protocol/JavaScriptContextTarget.js:
3728 (WI.JavaScriptContextTarget):
3729 * UserInterface/Protocol/PageTarget.js:
3730 (WI.PageTarget):
3731 (WI.PageTarget.prototype.get displayName):
3732 Specialized target types.
3733
3734 * UserInterface/Views/DebuggerSidebarPanel.js:
3735 (WI.DebuggerSidebarPanel):
3736 (WI.DebuggerSidebarPanel.prototype._targetAdded):
3737 (WI.DebuggerSidebarPanel.prototype._targetRemoved):
3738 (WI.DebuggerSidebarPanel.prototype._updateCallStackTreeOutline):
3739 * UserInterface/Views/SourceCodeTextEditor.js:
3740 (WI.SourceCodeTextEditor.prototype._targetAdded):
3741 (WI.SourceCodeTextEditor.prototype._targetRemoved):
3742 (WI.SourceCodeTextEditor.prototype._callFramesDidChange):
3743 (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
3744 (WI.SourceCodeTextEditor.prototype._reinsertAllThreadIndicators):
3745 * UserInterface/Views/QuickConsole.js:
3746 (WI.QuickConsole.prototype.initializeMainExecutionContextPathComponent):
3747 (WI.QuickConsole.prototype._targetAdded):
3748 (WI.QuickConsole.prototype._targetRemoved):
3749 We make target added get called with all targets, including the
3750 MultiplexingBackendTarget and PageTargets, both of which would
3751 not have happened before. Before it was only WorkerTargets. Make
3752 these sites a little more robust for the type of target they expect
3753 to be able to handle.
3754
3755 * UserInterface/Base/Object.js:
3756 * UserInterface/Controllers/DOMManager.js:
3757 (WI.DOMManager):
3758 (WI.DOMManager.prototype.transitionPageTarget):
3759 (WI.DOMManager.prototype.requestDocument):
3760 (WI.DOMManager.prototype._setDocument):
3761 * UserInterface/Controllers/NetworkManager.js:
3762 (WI.NetworkManager):
3763 (WI.NetworkManager.prototype.transitionPageTarget):
3764 (WI.NetworkManager.prototype.executionContextCreated):
3765 (WI.NetworkManager.prototype._processMainFrameResourceTreePayload):
3766 * UserInterface/Models/DefaultDashboard.js:
3767 (WI.DefaultDashboard):
3768 (WI.DefaultDashboard.prototype._mainResourceDidChange):
3769 (WI.DefaultDashboard.prototype._transitionPageTarget):
3770 * UserInterface/Views/NetworkTableContentView.js:
3771 (WI.NetworkTableContentView):
3772 (WI.NetworkTableContentView.prototype._mainResourceDidChange):
3773 (WI.NetworkTableContentView.prototype._transitionPageTarget):
3774 Special case handling when performing a page transition.
3775
3776 * UserInterface/Views/SettingsTabContentView.js:
3777 * UserInterface/Debug/UncaughtExceptionReporter.js:
3778 Document reloads are not supported right now.
3779
drousso@apple.com705f27f2018-11-14 09:26:23 +000037802018-11-14 Devin Rousso <drousso@apple.com>
3781
drousso@apple.com205c1e72018-11-14 12:01:31 +00003782 Web Inspector: Canvas: don't start with auto-capture enabled
3783 https://bugs.webkit.org/show_bug.cgi?id=191553
3784
3785 Reviewed by Matt Baker.
3786
3787 * UserInterface/Views/CanvasOverviewContentView.js:
3788 (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount):
3789 (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize):
3790 (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput):
3791 * UserInterface/Views/CanvasOverviewContentView.css:
3792 (.navigation-bar > .item.canvas-recording-auto-capture > label > input):
3793
37942018-11-14 Devin Rousso <drousso@apple.com>
3795
drousso@apple.com705f27f2018-11-14 09:26:23 +00003796 Web Inspector: Network Graphs are missing minimum sizes, might have no graph at all
3797 https://bugs.webkit.org/show_bug.cgi?id=191208
3798
3799 Reviewed by Joseph Pecoraro.
3800
3801 `WI.NetworkTableContentView` used to rely on the `WI.timelineManager.persistentNetworkTimeline`
3802 for events when a new resource is added. It also listened for `WI.Frame.Event.MainResourceDidChange`
3803 on it's own, which was also listened to by `WI.timelineManager.persistentNetworkTimeline`.
3804 Due to the order in which these listeners are added, the new main resource would get added
3805 to the `WI.timelineManager.persistentNetworkTimeline` (and the `WI.NetworkTableContentView`
3806 shortly after), and right after that the `WI.NetworkTableContentView` would reset the graph
3807 in it's own listener for `WI.Frame.Event.MainResourceDidChange`.
3808
3809 This patch removes `WI.timelineManager.persistentNetworkTimeline` and instead makes it so
3810 that `WI.NetworkTableContentView` listens for resource added and main frame changed events
3811 on its own (similar to other views that follow this pattern), ensuring that there are no
3812 event races.
3813
3814 Also relaxes the "requirement" that prevented 0 width blocks from being drawn, allowing
3815 requests served from memory/disk to appear in the graph (their time is effectively 0).
3816
3817 * UserInterface/Views/NetworkTableContentView.js:
3818 (WI.NetworkTableContentView):
3819 (WI.NetworkTableContentView.prototype.closed):
3820 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
3821 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
3822 (WI.NetworkTableContentView.prototype._updateWaterfallTimeRange): Added.
3823 (WI.NetworkTableContentView.prototype._resourceLoadingDidFinish):
3824 (WI.NetworkTableContentView.prototype._resourceLoadingDidFail):
3825 (WI.NetworkTableContentView.prototype._handleResourceAdded): Added.
3826 (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
3827 (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent):
3828 (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged):
3829 * UserInterface/Views/NetworkTableContentView.css:
3830 (.network-table .waterfall .block:matches(.mouse-tracking, .filler) + .block:not(.mouse-tracking, .filler)): Added.
3831 (.network-table .waterfall .block.filler + .block): Deleted.
3832
3833 * UserInterface/Controllers/TimelineManager.js:
3834 (WI.TimelineManager):
3835 (WI.TimelineManager.prototype._mainResourceDidChange):
3836 (WI.TimelineManager.prototype._resourceWasAdded):
3837 (WI.TimelineManager.prototype.get persistentNetworkTimeline): Deleted.
3838
mattbaker@apple.come37e9252018-11-13 19:41:39 +000038392018-11-13 Matt Baker <mattbaker@apple.com>
3840
mattbaker@apple.com41508a52018-11-13 20:44:36 +00003841 Web Inspector: Table should support select all (Cmd-A)
3842 https://bugs.webkit.org/show_bug.cgi?id=190299
3843 <rdar://problem/45029170>
3844
3845 Reviewed by Devin Rousso.
3846
3847 * UserInterface/Views/Table.js:
3848 (WI.Table.prototype.selectAll):
3849 (WI.Table.prototype._handleKeyDown):
3850
38512018-11-13 Matt Baker <mattbaker@apple.com>
3852
mattbaker@apple.come37e9252018-11-13 19:41:39 +00003853 Web Inspector: Table with no selection should select the first/last row on down/up arrow key
3854 https://bugs.webkit.org/show_bug.cgi?id=190100
3855 <rdar://problem/44879243>
3856
3857 Reviewed by Devin Rousso.
3858
3859 Pressing the up or down arrow key when nothing is selected should select
3860 the last or first row, respectively. After selecting the row make sure
3861 it is visible by calling the new Table method `revealRow`.
3862
3863 * UserInterface/Views/Table.js:
3864 (WI.Table.prototype.revealRow):
3865 (WI.Table.prototype._handleKeyDown):
3866 (WI.Table.prototype._selectRowsFromArrowKey):
3867
nvasilyev@apple.com223936d2018-11-13 18:40:00 +000038682018-11-13 Nikita Vasilyev <nvasilyev@apple.com>
3869
3870 Web Inspector: Styles: Command-A should select all properties
3871 https://bugs.webkit.org/show_bug.cgi?id=191435
3872 <rdar://problem/45921373>
3873
3874 Reviewed by Devin Rousso.
3875
3876 When focused on a style property, Command-A on Mac (Control-A on other platforms)
3877 should select all properties of the style rule.
3878
3879 * UserInterface/Base/Utilities.js:
3880 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
3881 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties):
3882 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
3883
drousso@apple.com201d9022018-11-13 07:07:21 +000038842018-11-12 Devin Rousso <drousso@apple.com>
3885
3886 Web Inspector: Network: show secure certificate details per-request
3887 https://bugs.webkit.org/show_bug.cgi?id=191447
3888 <rdar://problem/30019476>
3889
3890 Reviewed by Joseph Pecoraro.
3891
3892 * UserInterface/Controllers/NetworkManager.js:
3893 (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
3894 (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
3895
3896 * UserInterface/Models/Resource.js:
3897 (WI.Resource.prototype.get responseSecurity): Added.
3898 (WI.Resource.prototype.get loadedSecurely): Added.
3899 (WI.Resource.prototype.updateForResponse):
3900
3901 * UserInterface/Views/NetworkResourceDetailView.js:
3902 (WI.NetworkResourceDetailView):
3903 (WI.NetworkResourceDetailView.prototype.initialLayout):
3904 (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
3905 * UserInterface/Views/NetworkResourceDetailView.css:
3906 (.content-view.resource-details .go-to-arrow): Added.
3907 (.content-view.resource-details.showing-find-banner .search-highlight): Added.
3908
3909 * UserInterface/Views/ResourceSecurityContentView.js: Added.
3910 (WI.ResourceSecurityContentView):
3911 (WI.ResourceSecurityContentView.prototype.initialLayout):
3912 (WI.ResourceSecurityContentView.prototype.layout):
3913 (WI.ResourceSecurityContentView.prototype.closed):
3914 (WI.ResourceSecurityContentView.prototype.get supportsSearch):
3915 (WI.ResourceSecurityContentView.prototype.get numberOfSearchResults):
3916 (WI.ResourceSecurityContentView.prototype.get hasPerformedSearch):
3917 (WI.ResourceSecurityContentView.prototype.set automaticallyRevealFirstSearchResult):
3918 (WI.ResourceSecurityContentView.prototype.performSearch):
3919 (WI.ResourceSecurityContentView.prototype.searchCleared):
3920 (WI.ResourceSecurityContentView.prototype.revealPreviousSearchResult):
3921 (WI.ResourceSecurityContentView.prototype.revealNextSearchResult):
3922 (WI.ResourceSecurityContentView.prototype._refreshCetificateSection):
3923 (WI.ResourceSecurityContentView.prototype._perfomSearchOnKeyValuePairs):
3924 (WI.ResourceSecurityContentView.prototype._revealSearchResult):
3925 (WI.ResourceSecurityContentView.prototype._handleResourceResponseReceived):
3926 * UserInterface/Views/ResourceSecurityContentView.css: Added.
3927 (body[dir] .resource-security > section.certificate > .details):
3928 (.resource-security .details .key):
3929 (.resource-security .dns-name + .dns-name > .key,):
3930 (.resource-security .show-more):
3931 (@media (prefers-dark-interface) body[dir] .resource-security > section.certificate > .details):
3932 (@media (prefers-dark-interface) .resource-security .details .key):
3933
3934 * UserInterface/Views/ResourceCookiesContentView.js:
3935 (WI.ResourceCookiesContentView.prototype._refreshRequestCookiesSection):
3936 (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
3937 (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithMessage): Deleted.
3938 (WI.ResourceCookiesContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
3939 * UserInterface/Views/ResourceHeadersContentView.js:
3940 (WI.ResourceHeadersContentView.prototype._refreshSummarySection):
3941 (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections):
3942 (WI.ResourceHeadersContentView.prototype._refreshRequestHeadersSection):
3943 (WI.ResourceHeadersContentView.prototype._refreshResponseHeadersSection):
3944 (WI.ResourceHeadersContentView.prototype._refreshQueryStringSection):
3945 (WI.ResourceHeadersContentView.prototype._refreshRequestDataSection):
3946 (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithMessage): Deleted.
3947 (WI.ResourceHeadersContentView.prototype._markIncompleteSectionWithLoadingIndicator): Deleted.
3948 (WI.ResourceHeadersContentView.prototype._appendKeyValuePair): Deleted.
3949 * UserInterface/Views/ResourceHeadersContentView.css:
3950 (.resource-headers .h1-status > .key,):
3951 (body[dir] .resource-headers > section.error > .details): Deleted.
3952 (.resource-headers > section.error .key): Deleted.
3953 (.resource-headers .details): Deleted.
3954 (.resource-headers .details .pair): Deleted.
3955 (body[dir=rtl] .resource-headers .details .pair): Deleted.
3956 (.resource-headers .details .key): Deleted.
3957 (.resource-headers .value): Deleted.
3958 (.resource-headers .go-to-arrow): Deleted.
3959 (.resource-headers.showing-find-banner .search-highlight): Deleted.
3960 * UserInterface/Views/ResourceDetailsSection.js:
3961 (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithMessage): Added.
3962 (WI.ResourceDetailsSection.prototype.markIncompleteSectionWithLoadingIndicator): Added.
3963 (WI.ResourceDetailsSection.prototype.appendKeyValuePair): Added.
3964 * UserInterface/Views/ResourceDetailsSection.css:
3965 (.resource-details > section > .details): Added.
3966 (.resource-details > section > .details > .pair): Added.
3967 (body[dir=rtl] .resource-details > section > .details > .pair): Added.
3968 (.resource-details > section > .details > .pair > .key): Added.
3969 (.resource-details > section > .details > .pair > .value): Added.
3970 (body[dir] .resource-details > section.error > .details): Added.
3971 (.resource-details > section.error > .details > .pair > .key): Added.
3972 Move commonly used functions/styles from container classes onto this object.
3973
3974 * UserInterface/Main.html:
3975 * Localizations/en.lproj/localizedStrings.js:
3976
mattbaker@apple.comf3770852018-11-13 05:13:02 +000039772018-11-12 Matt Baker <mattbaker@apple.com>
3978
3979 Web Inspector: Table should support shift-extending the row selection
3980 https://bugs.webkit.org/show_bug.cgi?id=189718
3981 <rdar://problem/44577942>
3982
3983 Reviewed by Devin Rousso.
3984
3985 Allow the table selection to be extended by shift-clicking a row, or by
3986 holding shift and pressing either the up or down arrow key. If both command
3987 and shift are pressed, shift is ignored. The selection behavior is modeled
3988 after AppKit's NSTableView.
3989
3990 * UserInterface/Base/IndexSet.js:
3991 (WI.IndexSet.prototype.addRange):
3992 (WI.IndexSet.prototype.deleteRange):
3993 (WI.IndexSet.prototype.equals):
3994 (WI.IndexSet.prototype.difference):
3995
3996 * UserInterface/Views/Table.js:
3997 (WI.Table):
3998 (WI.Table.prototype.set allowsMultipleSelection):
3999 (WI.Table.prototype.reloadData):
4000 (WI.Table.prototype.selectRow):
4001 (WI.Table.prototype.deselectRow):
4002 (WI.Table.prototype._handleKeyDown):
4003 Holding shift and pressing either the up or down arrow key extends the
4004 selection to the next unselected row adjacent to the anchor row, or causes
4005 the anchor row to be deselected, decreasing the selection. The table chooses
4006 the action to take based on the direction of movement (up or down), and
4007 the currently selected rows.
4008
4009 (WI.Table.prototype._selectRowsFromArrowKey):
4010 (WI.Table.prototype._handleMouseDown.normalizeRange):
4011 (WI.Table.prototype._handleMouseDown):
4012 Clicking a row while holding down shift extends the selection to include
4013 the rows between the anchor row (exclusive) and clicked row (inclusive).
4014 The anchor row is equal to the value of `_selectedRowIndex` prior to
4015 clicking a new row.
4016
4017 (WI.Table.prototype._deselectAllAndSelect):
4018 (WI.Table.prototype._removeRows):
4019 (WI.Table.prototype._toggleSelectedRowStyle):
4020 (WI.Table.prototype._updateSelectedRows):
4021 Helper method for updating the selection to the specified rows, and updating
4022 DOM styles for rows that are added to or removed from the selection.
4023
nvasilyev@apple.comadd39ce2018-11-13 04:43:41 +000040242018-11-12 Nikita Vasilyev <nvasilyev@apple.com>
4025
4026 Web Inspector: Styles: inline swatches don't work when Multiple Properties Selection is enabled
4027 https://bugs.webkit.org/show_bug.cgi?id=191165
4028 <rdar://problem/45737972>
4029
4030 Reviewed by Devin Rousso.
4031
4032 * UserInterface/Views/SpreadsheetStyleProperty.js:
4033 (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
4034 * UserInterface/Views/SpreadsheetTextField.js:
4035 (WI.SpreadsheetTextField):
4036 `click` is fired after `mouseup` and inline swatches are activated by `click` event.
4037 Changing this to `click` allows swatches to activate before editing starts.
4038
4039 (WI.SpreadsheetTextField.prototype._handleMouseDown):
4040 Clicking on the field that is being edited should't restart editing. It should move the text caret.
4041
don.olmstead@sony.combdca1fc2018-11-12 21:41:20 +000040422018-11-12 Don Olmstead <don.olmstead@sony.com>
4043
4044 Shipped PNGs include bad profiles: iCCP: known incorrect sRGB profile
4045 https://bugs.webkit.org/show_bug.cgi?id=189230
4046 <rdar://problem/44050379>
4047
4048 Reviewed by Joseph Pecoraro.
4049
4050 Runs all png images through zopflipng. This results in a smaller file
4051 size and takes care of this issue as a byproduct.
4052
4053 * UserInterface/Images/ApplicationCache.png:
4054 * UserInterface/Images/ApplicationCache@2x.png:
4055 * UserInterface/Images/ApplicationCacheManifest.png:
4056 * UserInterface/Images/ApplicationCacheManifest@2x.png:
4057 * UserInterface/Images/Breakpoint.png:
4058 * UserInterface/Images/Breakpoint@2x.png:
4059 * UserInterface/Images/BreakpointInactive.png:
4060 * UserInterface/Images/BreakpointInactive@2x.png:
4061 * UserInterface/Images/ClippingCSS.png:
4062 * UserInterface/Images/ClippingCSS@2x.png:
4063 * UserInterface/Images/ClippingCSSLarge.png:
4064 * UserInterface/Images/ClippingCSSLarge@2x.png:
4065 * UserInterface/Images/ClippingGeneric.png:
4066 * UserInterface/Images/ClippingGeneric@2x.png:
4067 * UserInterface/Images/ClippingGenericLarge.png:
4068 * UserInterface/Images/ClippingGenericLarge@2x.png:
4069 * UserInterface/Images/ClippingJS.png:
4070 * UserInterface/Images/ClippingJS@2x.png:
4071 * UserInterface/Images/ClippingJSLarge.png:
4072 * UserInterface/Images/ClippingJSLarge@2x.png:
4073 * UserInterface/Images/ColorIcon.png:
4074 * UserInterface/Images/ColorIcon@2x.png:
4075 * UserInterface/Images/Cookie.png:
4076 * UserInterface/Images/Cookie@2x.png:
4077 * UserInterface/Images/Database.png:
4078 * UserInterface/Images/Database@2x.png:
4079 * UserInterface/Images/DatabaseTable.png:
4080 * UserInterface/Images/DatabaseTable@2x.png:
4081 * UserInterface/Images/DocumentCSS.png:
4082 * UserInterface/Images/DocumentCSS@2x.png:
4083 * UserInterface/Images/DocumentCSSLarge.png:
4084 * UserInterface/Images/DocumentCSSLarge@2x.png:
4085 * UserInterface/Images/DocumentFont.png:
4086 * UserInterface/Images/DocumentFont@2x.png:
4087 * UserInterface/Images/DocumentFontLarge.png:
4088 * UserInterface/Images/DocumentFontLarge@2x.png:
4089 * UserInterface/Images/DocumentGL.png:
4090 * UserInterface/Images/DocumentGL@2x.png:
4091 * UserInterface/Images/DocumentGeneric.png:
4092 * UserInterface/Images/DocumentGeneric@2x.png:
4093 * UserInterface/Images/DocumentGenericLarge.png:
4094 * UserInterface/Images/DocumentGenericLarge@2x.png:
4095 * UserInterface/Images/DocumentImage.png:
4096 * UserInterface/Images/DocumentImage@2x.png:
4097 * UserInterface/Images/DocumentImageLarge.png:
4098 * UserInterface/Images/DocumentImageLarge@2x.png:
4099 * UserInterface/Images/DocumentJS.png:
4100 * UserInterface/Images/DocumentJS@2x.png:
4101 * UserInterface/Images/DocumentJSLarge.png:
4102 * UserInterface/Images/DocumentJSLarge@2x.png:
4103 * UserInterface/Images/DocumentMarkup.png:
4104 * UserInterface/Images/DocumentMarkup@2x.png:
4105 * UserInterface/Images/DocumentMarkupLarge.png:
4106 * UserInterface/Images/DocumentMarkupLarge@2x.png:
4107 * UserInterface/Images/FolderGeneric.png:
4108 * UserInterface/Images/FolderGeneric@2x.png:
4109 * UserInterface/Images/GradientStop.png:
4110 * UserInterface/Images/GradientStop@2x.png:
4111 * UserInterface/Images/GradientStopSelected.png:
4112 * UserInterface/Images/GradientStopSelected@2x.png:
4113 * UserInterface/Images/HoverMenuButton.png:
4114 * UserInterface/Images/HoverMenuButton@2x.png:
4115 * UserInterface/Images/InstructionPointer.png:
4116 * UserInterface/Images/InstructionPointer@2x.png:
4117 * UserInterface/Images/LocalStorage.png:
4118 * UserInterface/Images/LocalStorage@2x.png:
4119 * UserInterface/Images/SessionStorage.png:
4120 * UserInterface/Images/SessionStorage@2x.png:
4121 * UserInterface/Images/SliderThumb.png:
4122 * UserInterface/Images/SliderThumb@2x.png:
4123 * UserInterface/Images/SliderThumbPressed.png:
4124 * UserInterface/Images/SliderThumbPressed@2x.png:
4125 * UserInterface/Images/WebSocket.png:
4126 * UserInterface/Images/WebSocket@2x.png:
4127 * UserInterface/Images/WebSocketLarge.png:
4128 * UserInterface/Images/WebSocketLarge@2x.png:
4129 * UserInterface/Images/WorkerScript.png:
4130 * UserInterface/Images/WorkerScript@2x.png:
4131 * UserInterface/Images/WorkerScriptLarge.png:
4132 * UserInterface/Images/WorkerScriptLarge@2x.png:
4133
nvasilyev@apple.comfb01a782018-11-12 18:09:23 +000041342018-11-12 Nikita Vasilyev <nvasilyev@apple.com>
4135
4136 Web Inspector: Styles: Pressing Tab or Enter should start editing focused property
4137 https://bugs.webkit.org/show_bug.cgi?id=191510
4138 <rdar://problem/45970897>
4139
4140 Reviewed by Dean Jackson.
4141
4142 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
4143 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
4144
joepeck@webkit.org412b9422018-11-09 19:23:42 +000041452018-11-08 Joseph Pecoraro <pecoraro@apple.com>
4146
4147 Web Inspector: Start moving toward better multi-target support
4148 https://bugs.webkit.org/show_bug.cgi?id=191345
4149
4150 Reviewed by Devin Rousso.
4151
4152 This change continues the move toward better multi-target support
4153 by explicitly using explicit target agents in more places, and
4154 converting generalized feature checks into target agnostic versions
4155 that use the new InspectorBackend.domains, which does not vary based
4156 on the connected targets / debuggable type.
4157
4158 I also audited uses of RuntimeAgent, ConsoleAgent, and DebuggerAgent
4159 for better multi-target support since these agents should already
4160 have complete multi-target support.
4161
4162 * UserInterface/Protocol/Target.js:
4163 (WI.Target.prototype.initialize):
4164 Move explicitly to target.Agent feature checks with a known target.
4165
4166 * UserInterface/Controllers/DebuggerManager.js:
4167 (WI.DebuggerManager.prototype.initializeTarget):
4168 (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange):
4169 Move explicitly to target.DebuggerAgent for feature checks with a known target.
4170
4171 * UserInterface/Controllers/NetworkManager.js:
4172 (WI.NetworkManager.prototype.initializeTarget):
4173 Move explicitly to target.NetworkAgent for feature checks with a known target.
4174
4175 * UserInterface/Controllers/RuntimeManager.js:
4176 (WI.RuntimeManager.prototype.initializeTarget):
4177 (WI.RuntimeManager.prototype.saveResult):
4178 * UserInterface/Protocol/RemoteObject.js:
4179 (WI.RemoteObject.prototype.updatePreview):
4180 (WI.RemoteObject.prototype.getDisplayablePropertyDescriptors):
4181 (WI.RemoteObject.prototype.deprecatedGetDisplayableProperties):
4182 * UserInterface/Views/SourceCodeTextEditor.js:
4183 (WI.SourceCodeTextEditor.prototype._createTypeTokenAnnotator):
4184 (WI.SourceCodeTextEditor.prototype._createBasicBlockAnnotator):
4185 Move explicitly to target.RuntimeAgent for feature checks with a known target.
4186
4187 * UserInterface/Models/CSSCompletions.js:
4188 (WI.CSSCompletions.initializeCSSCompletions):
4189 Move explicitly to target.CSSAgent for feature checks with a known target.
4190
4191 * UserInterface/Views/ContextMenuUtilities.js:
4192 Use the DebuggerAgent from the target associated with the DOMNode's
4193 remote object instead of assuming the main target.
4194
4195 * UserInterface/Views/SettingsTabContentView.js:
4196 (WI.SettingsTabContentView.prototype._createGeneralSettingsView):
4197 Update the ConsoleAgent setting on all targets that support it.
4198
4199 * UserInterface/Views/BreakpointActionView.js:
4200 (WI.BreakpointActionView):
4201 All backends support BreakpointActionType, the assertion can go away.
4202
4203 * UserInterface/Views/LogContentView.js:
4204 (WI.LogContentView.prototype.get navigationItems):
4205 * UserInterface/Views/DOMTreeContentView.js:
4206 (WI.DOMTreeContentView.prototype.get navigationItems):
4207 Include additional `window.FooAgent` checks for these since they will need
4208 to be revisited in the future.
4209
4210 * UserInterface/Protocol/InspectorBackend.js:
4211 (InspectorBackendClass.prototype.get domains):
4212 (InspectorBackendClass.prototype.activateDomain):
4213 Expose InspectorBackend.domains.<Domain> for feature checking.
4214
4215 * UserInterface/Controllers/BreakpointPopoverController.js:
4216 (WI.BreakpointPopoverController.prototype._createPopoverContent):
4217 * UserInterface/Controllers/CSSManager.js:
4218 (WI.CSSManager):
4219 (WI.CSSManager.prototype._mainResourceDidChange):
4220 * UserInterface/Controllers/TimelineManager.js:
4221 (WI.TimelineManager.prototype._attemptAutoCapturingForFrame):
4222 (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
4223 (WI.TimelineManager):
4224 * UserInterface/Models/Canvas.js:
4225 (WI.Canvas.prototype.startRecording):
4226 (WI.Canvas.prototype.recordingFinished):
4227 * UserInterface/Models/ScriptSyntaxTree.js:
4228 (WI.ScriptSyntaxTree.functionReturnDivot):
4229 * UserInterface/Protocol/DebuggerObserver.js:
4230 (WI.DebuggerObserver):
4231 * UserInterface/Protocol/NetworkObserver.js:
4232 (WI.NetworkObserver.prototype.requestWillBeSent):
4233 * UserInterface/Views/DebuggerSidebarPanel.js:
4234 (WI.DebuggerSidebarPanel):
4235 (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked):
4236 * UserInterface/Views/NetworkTimelineView.js:
4237 (WI.NetworkTimelineView):
4238 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
4239 (WI.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse):
4240 * UserInterface/Views/WebSocketContentView.js:
4241 (WI.WebSocketContentView):
4242 (WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
4243 (WI.DebuggerManager.prototype.debuggerDidResume):
4244 Feature check in a target agnostic way.
4245
mattbaker@apple.comba3bf282018-11-09 07:13:25 +000042462018-11-08 Matt Baker <mattbaker@apple.com>
4247
4248 Web Inspector: ResourceQueryController should early return when query is longer than search string
4249 https://bugs.webkit.org/show_bug.cgi?id=191436
4250
4251 Reviewed by Devin Rousso.
4252
4253 * UserInterface/Controllers/ResourceQueryController.js:
4254
4255 * UserInterface/Models/ResourceQueryMatch.js:
4256 (WI.ResourceQueryMatch):
4257 Drive-by fixes.
4258
joepeck@webkit.orgbad8c782018-11-08 20:27:04 +000042592018-11-08 Joseph Pecoraro <pecoraro@apple.com>
4260
commit-queue@webkit.org69b02f12018-11-09 06:07:20 +00004261 Uncaught Exception: undefined is not an object (evaluating 'treeElement.parent.removeChild')
4262 https://bugs.webkit.org/show_bug.cgi?id=191454
4263
4264 Reviewed by Matt Baker.
4265
4266 * UserInterface/Views/ResourceSidebarPanel.js:
4267 (WI.ResourceSidebarPanel.prototype._scriptsCleared):
4268 This was intending to iterate the Map's values, which are tree elements.
4269
42702018-11-08 Joseph Pecoraro <pecoraro@apple.com>
4271
commit-queue@webkit.org51461012018-11-08 23:44:22 +00004272 Web Inspector: Potential for watch expressions to never show results
4273 https://bugs.webkit.org/show_bug.cgi?id=191438
4274
4275 Reviewed by Matt Baker.
4276
4277 * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
4278 (WI.ScopeChainDetailsSidebarPanel.prototype._generateWatchExpressionsSection):
4279 If there was no object don't bail, continue and resolve the Promise.
4280 In this case we can fallback to show `undefined`. This code might not be
4281 reachable right now, but is wrong as is.
4282
42832018-11-08 Joseph Pecoraro <pecoraro@apple.com>
4284
commit-queue@webkit.orgd7dc1cb2018-11-08 22:43:52 +00004285 Web Inspector: Debugger Popover does not work when paused in Worker
4286 https://bugs.webkit.org/show_bug.cgi?id=191342
4287
4288 Reviewed by Devin Rousso.
4289
4290 * UserInterface/Views/SourceCodeTextEditor.js:
4291 (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression.populate):
4292 (WI.SourceCodeTextEditor.prototype._tokenTrackingControllerHighlightedJavaScriptExpression):
4293 When receiving the result of the popover evaluation associate the RemoteObject with
4294 the target we used to evaluate (such as the Debugger call frame), not the target
4295 associated with the editor.
4296
42972018-11-08 Joseph Pecoraro <pecoraro@apple.com>
4298
joepeck@webkit.orgbad8c782018-11-08 20:27:04 +00004299 Web Inspector: Restrict domains at the target level instead of only at the window level
4300 https://bugs.webkit.org/show_bug.cgi?id=191344
4301
4302 Reviewed by Devin Rousso.
4303
4304 With this change the list of agents available on the target should accurately
4305 reflect the domains that target supports. We should start moving in the direction
4306 that if we are checking for, or using, a feature, we should ideally be using
4307 code that looks like `target.FooAgent.method` and not `window.FooAgent` or
4308 an unprefixed `FooAgent`. More changes to follow.
4309
4310 * UserInterface/Controllers/AppControllerBase.js:
4311 * UserInterface/Base/DebuggableType.js: Added.
4312 Extract debuggable type enum out into its own file loaded early on.
4313
4314 * UserInterface/Main.html:
4315 * UserInterface/Test.html:
4316 Load DebuggableType.js.
4317
4318 * UserInterface/Controllers/NetworkManager.js:
4319 (WI.NetworkManager.prototype.initializeTarget):
4320 With these changes target.ServiceWorker is only exposed on a ServiceWorker target.
4321
4322 * UserInterface/Protocol/Connection.js:
4323 (InspectorBackend.WorkerConnection):
4324 With these changes Target.js restricts the domains exposed on the Target so just
4325 clone all of the agents (we don't need to do anything special).
4326
4327 * UserInterface/Protocol/InspectorBackend.js:
4328 (InspectorBackendClass.prototype.activateDomain):
4329 Update supported domains per-type. If there is no explicit availability
4330 then the domain is supported on all types.
4331
4332 (InspectorBackendClass.prototype.supportedDomainsForDebuggableType):
4333 Get supported domains per-type.
4334
4335 (InspectorBackendClass.prototype.get workerSupportedDomains): Deleted.
4336 (InspectorBackendClass.prototype.workerSupportedDomain): Deleted.
4337 workerSupportedDomains is now unnecessary.
4338
4339 * UserInterface/Protocol/Target.js:
4340 (WI.Target.prototype._supportedDomainsForTargetType):
4341 Restrict supported domains for this target based on its type.
4342
4343 * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
4344 * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
4345 * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
4346 * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
4347 * Versions/Inspector-iOS-10.3.json:
4348 * Versions/Inspector-iOS-11.0.json:
4349 * Versions/Inspector-iOS-11.3.json:
4350 * Versions/Inspector-iOS-12.0.json:
4351 Regenerate protocol files now that workerSupportedDomains is unnecessary
4352 and explicit availability has been added to other domains.
4353
nvasilyev@apple.com230cf2d2018-11-08 02:00:49 +000043542018-11-07 Nikita Vasilyev <nvasilyev@apple.com>
4355
4356 REGRESSION(r236705): Web Inspector: wrong text color for selected DataGrid row
4357 https://bugs.webkit.org/show_bug.cgi?id=191405
4358 <rdar://problem/45893283>
4359
4360 Reviewed by Matt Baker.
4361
4362 Selection background color for both Dark Mode mode and Light Mode is dark blue.
4363 The text color for both cases should be white.
4364
4365 * UserInterface/Views/DataGrid.css:
4366 (body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input):
4367
commit-queue@webkit.org2a5d5f92018-11-07 19:48:04 +000043682018-11-07 Joseph Pecoraro <pecoraro@apple.com>
4369
4370 Web Inspector: Fix "Javascript" => "JavaScript" enum in protocol generated objects
4371 https://bugs.webkit.org/show_bug.cgi?id=191340
4372
4373 Reviewed by Devin Rousso.
4374
4375 * UserInterface/Models/Canvas.js:
4376 (WI.Canvas.fromPayload):
4377 Insert a missing break statement for the WebGPU case.
4378
4379 * UserInterface/Models/MemoryTimelineRecord.js:
4380 (WI.MemoryTimelineRecord.memoryCategoriesFromProtocol):
4381 Use new enum name.
4382
4383 * UserInterface/Protocol/Legacy/10.0/InspectorBackendCommands.js:
4384 * UserInterface/Protocol/Legacy/10.3/InspectorBackendCommands.js:
4385 * UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js:
4386 * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js:
4387 * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js:
4388 * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
4389 * UserInterface/Protocol/Legacy/9.0/InspectorBackendCommands.js:
4390 * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js:
4391 Update enums with new generator.
4392
commit-queue@webkit.org74f9a672018-11-06 21:34:27 +000043932018-11-06 Joseph Pecoraro <pecoraro@apple.com>
4394
4395 REGRESSION: Web Inspector: Popovers drawing incorrectly in Network Tab (clicking between a few items)
4396 https://bugs.webkit.org/show_bug.cgi?id=191323
4397
4398 Reviewed by Devin Rousso.
4399
4400 * UserInterface/Views/Popover.js:
4401 (WI.Popover.prototype._drawBackground):
4402 Save and restore the context state between updates. Something
4403 was affecting the clearRect, making it so that it didn't actually
4404 clear the entire rect each time.
4405
drousso@apple.com79d66762018-11-05 22:03:47 +000044062018-11-05 Devin Rousso <drousso@apple.com>
4407
4408 Web Inspector: Audit: turn off Start button when all tests are removed
4409 https://bugs.webkit.org/show_bug.cgi?id=191235
4410
4411 Reviewed by Matt Baker.
4412
4413 * UserInterface/Views/AuditNavigationSidebarPanel.js:
4414 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved):
4415
mattbaker@apple.com23265c72018-11-05 19:01:30 +000044162018-11-05 Matt Baker <mattbaker@apple.com>
4417
4418 Web Inspector: Table selection should not require that rows be in the cache
4419 https://bugs.webkit.org/show_bug.cgi?id=190993
4420 <rdar://problem/45613812>
4421
4422 Reviewed by Devin Rousso.
4423
4424 Deselecting a table row shouldn't depend on it being in the cache. This
4425 allows us to implement select all, and other kinds of bulk selection
4426 actions that affect rows that haven't been revealed.
4427
4428 * UserInterface/Views/Table.js:
4429 (WI.Table.prototype.deselectRow):
4430
drousso@apple.come239de22018-11-05 17:34:48 +000044312018-11-05 Devin Rousso <drousso@apple.com>
4432
4433 Web Inspector: show save/restore stack for recorded 2D Canvases
4434 https://bugs.webkit.org/show_bug.cgi?id=175283
4435 <rdar://problem/34040756>
4436
4437 Reviewed by Matt Baker.
4438
4439 Instead of using plain objects for holding the `WI.Recording`'s state, use a model object
4440 so that more data can be passed around. When visualizing the state, show any previously
4441 saved states in a `WI.DetailsSection` underneath the current state. If there are no saved
4442 states (meaning there is only the current state), don't use a `WI.DetailsSection`.
4443
4444 * UserInterface/Models/RecordingState.js: Added.
4445 (WI.RecordingState):
4446 (WI.RecordingState.fromContext):
4447 (WI.RecordingState.async swizzleInitialState):
4448 (WI.RecordingState.prototype.get source):
4449 (WI.RecordingState.prototype.has):
4450 (WI.RecordingState.prototype.get return):
4451 (WI.RecordingState.prototype.toJSON):
4452 (WI.RecordingState.prototype.[Symbol.iterator]):
4453
4454 * UserInterface/Models/Recording.js:
4455 (WI.Recording.prototype.async _process):
4456 (WI.Recording.prototype.async _swizzleState): Deleted.
4457
4458 * UserInterface/Models/RecordingAction.js:
4459 (WI.RecordingAction.prototype.process):
4460 (WI.RecordingAction.deriveCurrentState): Deleted.
4461
4462 * UserInterface/Views/RecordingContentView.js:
4463 (WI.RecordingContentView.prototype._generateContentCanvas2D):
4464
4465 * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
4466 (WI.RecordingStateDetailsSidebarPanel):
4467 (WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement):
4468 (WI.RecordingStateDetailsSidebarPanel.prototype.sizeDidChange): Added.
4469 (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
4470 (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D.isColorProperty): Deleted.
4471 (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D.createInlineSwatch): Deleted.
4472 * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
4473 (.sidebar > .panel.details.recording-state > .content .details-section > .header .source): Added.
4474 (.sidebar > .panel.details.recording-state > .content .data-grid tr.modified): Added.
4475 (.sidebar > .panel.details.recording-state > .content .data-grid tr:not(.selected).non-standard .name-column): Added.
4476 (.sidebar > .panel.details.recording-state > .content .data-grid tr:not(.selected) .unavailable): Added.
4477 (.sidebar > .panel.details.recording-state > .content .data-grid .inline-swatch): Added.
4478 (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified): Deleted.
4479 (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected).non-standard): Deleted.
4480 (.sidebar > .panel.details.recording-state > .content > .data-grid tr:not(.selected) .unavailable): Deleted.
4481 (.sidebar > .panel.details.recording-state > .content > .data-grid .inline-swatch): Deleted.
4482
4483 * UserInterface/Main.html:
4484 * UserInterface/Test.html:
4485
4486 * Localizations/en.lproj/localizedStrings.js:
4487
drousso@apple.comb64bb152018-11-03 23:24:35 +000044882018-11-03 Devin Rousso <drousso@apple.com>
4489
4490 Web Inspector: Canvas: capture changes to <canvas> that would affect the recorded context
4491 https://bugs.webkit.org/show_bug.cgi?id=190854
4492
4493 Reviewed by Matt Baker.
4494
4495 * UserInterface/Models/RecordingAction.js:
4496 (WI.RecordingAction):
4497 (WI.RecordingAction.isFunctionForType):
4498 (WI.RecordingAction.constantNameForParameter):
4499 (WI.RecordingAction.prototype.get contextReplacer): Added.
4500 (WI.RecordingAction.prototype.async.swizzle):
4501 (WI.RecordingAction.prototype.apply):
4502 Create a constant list of actions for each recording type that need to replace the context
4503 with a different value before being applied (e.g. `width` should be applied to the
4504 `context`'s `canvas` instead of directly to the `context`).
4505
4506 * UserInterface/Views/RecordingContentView.js:
4507 (WI.RecordingContentView.prototype._generateContentCanvas2D.actionModifiesPath): Added.
4508 (WI.RecordingContentView.prototype._generateContentCanvas2D):
4509 (WI.RecordingContentView._actionModifiesPath): Deleted.
4510 Generate the path context after the actions are applied to the preview context so that the
4511 final width/height are known and can be used. This is needed because changing the
4512 width/height causes the content to be erased.
4513
4514 * UserInterface/Views/RecordingActionTreeElement.js:
4515 (WI.RecordingActionTreeElement._generateDOM):
4516 (WI.RecordingActionTreeElement._classNameForAction):
4517 * UserInterface/Views/RecordingActionTreeElement.css:
4518 (.tree-outline:focus .item.action.selected:not(.invalid, .initial-state, .has-context-replacer) > .icon): Added.
4519 (.item.action > .titles .context-replacer::after): Added.
4520 (.item.action.has-context-replacer > .icon): Added.
4521 (@media (prefers-dark-interface) .item.action:not(.invalid, .initial-state, .has-context-replacer) > .icon): Added.
4522 (.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted.
4523 (@media (prefers-dark-interface) .item.action:not(.initial-state) > .icon): Deleted.
4524 (@media (prefers-dark-interface) .tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon): Deleted.
4525 Add the context replacer text to the beginning of the action's name if it exists.
4526
4527 * UserInterface/Views/CanvasContentView.js:
4528 (WI.CanvasContentView.prototype._refreshPixelSize):
4529 (WI.CanvasContentView.prototype._updatePixelSize): Deleted.
4530 Update preview image when the canvas' size changes.
4531
mattbaker@apple.com097aa8e2018-11-02 19:39:01 +000045322018-11-02 Matt Baker <mattbaker@apple.com>
4533
4534 Web Inspector: support multiple selection/deletion of cookie records
4535 https://bugs.webkit.org/show_bug.cgi?id=66381
4536 <rdar://problem/19281525>
4537
4538 Reviewed by Devin Rousso.
4539
4540 * Localizations/en.lproj/localizedStrings.js:
4541
4542 * UserInterface/Views/CookieStorageContentView.js:
4543 (WI.CookieStorageContentView):
4544 (WI.CookieStorageContentView.prototype.get scrollableElements):
4545 (WI.CookieStorageContentView.prototype.tableNumberOfRows):
4546 (WI.CookieStorageContentView.prototype.tableSortChanged):
4547 (WI.CookieStorageContentView.prototype.tableCellContextMenuClicked):
4548 (WI.CookieStorageContentView.prototype.tableDidRemoveRows):
4549 (WI.CookieStorageContentView.prototype.tablePopulateCell):
4550 (WI.CookieStorageContentView.prototype.initialLayout):
4551 (WI.CookieStorageContentView.prototype._generateSortComparator):
4552 (WI.CookieStorageContentView.prototype._refreshButtonClicked):
4553 (WI.CookieStorageContentView.prototype._reloadCookies):
4554 (WI.CookieStorageContentView.prototype._updateSort):
4555 (WI.CookieStorageContentView.prototype._handleTableKeyDown):
4556 (WI.CookieStorageContentView.prototype.update): Deleted.
4557 (WI.CookieStorageContentView.prototype._rebuildTable): Deleted.
4558 (WI.CookieStorageContentView.prototype._sortDataGrid.localeCompare): Deleted.
4559 (WI.CookieStorageContentView.prototype._sortDataGrid.numberCompare): Deleted.
4560 (WI.CookieStorageContentView.prototype._sortDataGrid.expiresCompare): Deleted.
4561 (WI.CookieStorageContentView.prototype._sortDataGrid): Deleted.
4562 (WI.CookieStorageContentView.prototype._deleteCallback): Deleted.
4563 Replace DataGrid with Table. The content view serves as the table
4564 delegate and data source, and handles delete and backspace key events
4565 to allow deleting the selected cookies. Cookies may also be deleted from
4566 the table context menu and a new button in the navigation bar.
4567
4568 * UserInterface/Views/Table.js:
4569 (WI.Table.prototype.isRowSelected):
4570 (WI.Table.prototype.selectRow):
4571 (WI.Table.prototype.deselectRow):
4572 (WI.Table.prototype.removeRow):
4573 (WI.Table.prototype._getOrCreateRow):
4574 (WI.Table.prototype._handleMouseDown):
4575 (WI.Table.prototype._removeRows):
4576 (WI.Table.prototype._isRowSelected): Deleted.
4577 Make `isSelectedRow` public. It is more convenient and efficient than
4578 calling `Table.prototype.selectedRows.includes(rowIndex)`.
4579
drousso@apple.com7bb5ed62018-11-01 23:49:32 +000045802018-11-01 Devin Rousso <drousso@apple.com>
4581
drousso@apple.com00079a92018-11-02 04:11:57 +00004582 Web Inspector: View: introduce a didLayoutSubtree
4583 https://bugs.webkit.org/show_bug.cgi?id=191176
4584
4585 Reviewed by Matt Baker.
4586
4587 Introduce logic to allow subclasses of `WI.View` to perform logic after every `WI.View` in
4588 their subtree has finished `layout`.
4589
4590 * UserInterface/Views/View.js:
4591 (WI.View.prototype.didLayoutSubtree): Added.
4592 (WI.View.prototype._layoutSubtree):
4593
4594 * UserInterface/Views/NetworkTableContentView.js:
4595 (WI.NetworkTableContentView.prototype.layout):
4596 (WI.NetworkTableContentView.prototype.didLayoutSubtree): Added.
4597
45982018-11-01 Devin Rousso <drousso@apple.com>
4599
drousso@apple.com23eb3022018-11-02 00:27:19 +00004600 Web Inspector: Network: remove unnecessary media event tracking
4601 https://bugs.webkit.org/show_bug.cgi?id=191174
4602
4603 Reviewed by Joseph Pecoraro.
4604
4605 Renames "Group by Node" to "Group Media Requests" for clarity.
4606
4607 * UserInterface/Views/NetworkTableContentView.js:
4608 (WI.NetworkTableContentView):
4609 (WI.NetworkTableContentView.prototype.reset):
4610 (WI.NetworkTableContentView.prototype.showRepresentedObject):
4611 (WI.NetworkTableContentView.prototype.networkDetailViewClose):
4612 (WI.NetworkTableContentView.prototype._populateNameCell):
4613 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine):
4614 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
4615 (WI.NetworkTableContentView.prototype.layout):
4616 (WI.NetworkTableContentView.prototype._entryForDOMNode):
4617 (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
4618 (WI.NetworkTableContentView.prototype._restoreSelectedRow):
4619 (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall):
4620 (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall):
4621 (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
4622 * UserInterface/Views/NetworkTableContentView.css:
4623 (.network-table .data-container .cell.name .range): Added.
4624 (.network-table .data-container .cell.name .range::before): Added.
4625 (.network-table:focus .data-container li.selected .cell.name .range): Added.
4626 (@media (prefers-dark-interface) .network-table .data-container .cell.name .range): Added.
4627 Always display the "Byte Range" title as a "subtitle", regardless of the media requests
4628 setting being toggled.
4629 Drive-by: update the position of the waterfall popover whenever the time range changes.
4630 Drive-by: close the details view if a node is selected and the media requests setting is
4631 turned off.
4632
4633 * UserInterface/Views/Popover.js:
4634 (WI.Popover.prototype.resize): Added.
4635 (WI.Popover.prototype.handleEvent):
4636
4637 * Localizations/en.lproj/localizedStrings.js:
4638
46392018-11-01 Devin Rousso <drousso@apple.com>
4640
drousso@apple.com7bb5ed62018-11-01 23:49:32 +00004641 Web Inspector: Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener')
4642 https://bugs.webkit.org/show_bug.cgi?id=191020
4643
4644 Reviewed by Joseph Pecoraro.
4645
4646 * UserInterface/Views/TimelineRuler.js:
4647 (WI.TimelineRuler):
4648 Since `undefined` is not a number, it isn't less than `0`, which caused us to divide by
4649 `undefined` (equivalent to dividing by `0`), resulting in `NaN`.
4650
nvasilyev@apple.com71cf0722018-11-01 18:57:27 +000046512018-11-01 Nikita Vasilyev <nvasilyev@apple.com>
4652
nvasilyev@apple.comfae90c22018-11-01 23:24:16 +00004653 Uncaught Exception: TypeError: undefined is not an object (evaluating 'WI.modifierKeys.metaKey') (at ScopeBarItem.js:87:67)
4654 https://bugs.webkit.org/show_bug.cgi?id=191173
4655
4656 Reviewed by Devin Rousso.
4657
4658 WI.modifierKeys was accessed before it was initialized. Move it from WI.contentLoaded to WI.loaded,
4659 which happens before WI.contentLoaded.
4660
4661 * UserInterface/Base/Main.js:
4662 (WI.loaded):
4663 (WI.contentLoaded):
4664
46652018-11-01 Nikita Vasilyev <nvasilyev@apple.com>
4666
nvasilyev@apple.com6fe6f512018-11-01 19:13:27 +00004667 REGRESSION(r237652): Web Inspector: dumpInspectorProtocolMessages is always enabled
4668 https://bugs.webkit.org/show_bug.cgi?id=191161
4669
4670 Reviewed by Joseph Pecoraro.
4671
4672 * UserInterface/Protocol/InspectorBackend.js:
4673 (InspectorBackendClass.prototype.get dumpInspectorProtocolMessages):
4674
46752018-11-01 Nikita Vasilyev <nvasilyev@apple.com>
4676
nvasilyev@apple.com71cf0722018-11-01 18:57:27 +00004677 Web Inspector: Styles: Toggle selected properties by pressing Space or Command+/
4678 https://bugs.webkit.org/show_bug.cgi?id=181145
4679 <rdar://problem/36203388>
4680
4681 Reviewed by Brian Burg.
4682
4683 Pressing Space key or Command-/ toggles (comments out or uncomments) selected properties.
4684
4685 This patch only works with "Enable Selection of Multiple Properties" checked. It shouldn't introduce any
4686 changes when this setting is unchecked.
4687
4688 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
4689 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get selectionRange):
4690 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties):
4691 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy):
4692 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
4693 * UserInterface/Views/SpreadsheetStyleProperty.js:
4694 (WI.SpreadsheetStyleProperty):
4695 (WI.SpreadsheetStyleProperty.prototype.update): Renamed from _update.
4696 (WI.SpreadsheetStyleProperty.prototype.updateStatus):
4697 (WI.SpreadsheetStyleProperty.prototype.applyFilter):
4698 (WI.SpreadsheetStyleProperty.prototype.handleCopyEvent):
4699 Make `update` method public. No other changes were made.
4700
drousso@apple.com4ed15ac2018-11-01 01:18:07 +000047012018-10-31 Devin Rousso <drousso@apple.com>
4702
drousso@apple.com9c2dc262018-11-01 04:13:41 +00004703 Web Inspector: Canvas: create a setting for auto-recording newly created contexts
4704 https://bugs.webkit.org/show_bug.cgi?id=190856
4705
4706 Reviewed by Brian Burg.
4707
4708 * UserInterface/Controllers/CanvasManager.js:
4709 (WI.CanvasManager.supportsRecordingAutoCapture): Added.
4710 (WI.CanvasManager.prototype.setRecordingAutoCaptureFrameCount): Added.
4711
4712 * UserInterface/Models/Canvas.js:
4713 (WI.Canvas.prototype.startRecording):
4714 (WI.Canvas.prototype.recordingStarted):
4715 (WI.Canvas.prototype.recordingFinished):
4716
4717 * UserInterface/Models/Recording.js:
4718
4719 * UserInterface/Views/CanvasOverviewContentView.js:
4720 (WI.CanvasOverviewContentView):
4721 (WI.CanvasOverviewContentView.prototype.get navigationItems):
4722 (WI.CanvasOverviewContentView.prototype.initialLayout): Added.
4723 (WI.CanvasOverviewContentView.prototype.attached):
4724 (WI.CanvasOverviewContentView.prototype.detached):
4725 (WI.CanvasOverviewContentView.prototype._setRecordingAutoCaptureFrameCount): Added.
4726 (WI.CanvasOverviewContentView.prototype._updateRecordingAutoCaptureInputElementSize): Added.
4727 (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureInput): Added.
4728 (WI.CanvasOverviewContentView.prototype._handleRecordingAutoCaptureCheckedDidChange): Added.
4729 (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureEnabledChanged): Added.
4730 (WI.CanvasOverviewContentView.prototype._handleCanvasRecordingAutoCaptureFrameCountChanged): Added.
4731 * UserInterface/Views/CanvasOverviewContentView.css:
4732 (.navigation-bar > .item.canvas-recording-auto-capture > label): Added.
4733 (.navigation-bar > .item.canvas-recording-auto-capture > label > input): Added.
4734 (.navigation-bar > .item.canvas-recording-auto-capture > label > input::-webkit-inner-spin-button): Added.
4735 (.popover-content > .tree-outline .item.recording > .icon): Deleted.
4736 (.popover-content > .tree-outline .item.recording:hover): Deleted.
4737 (.popover-content > .tree-outline .item.recording:hover > .icon): Deleted.
4738 Drive-by: removed unused CSS rules.
4739
4740 * UserInterface/Views/CanvasContentView.js:
4741 (WI.CanvasContentView.prototype.initialLayout):
4742 (WI.CanvasContentView.prototype._updateProgressView):
4743 (WI.CanvasContentView.prototype._updateViewRelatedItems):
4744
4745 * UserInterface/Views/CanvasTabContentView.js:
4746 (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
4747
4748 * UserInterface/Views/CheckboxNavigationItem.js:
4749 (WI.CheckboxNavigationItem):
4750 (WI.CheckboxNavigationItem.prototype._handleLabelClick): Added.
4751
4752 * UserInterface/Base/Setting.js:
4753
4754 * Localizations/en.lproj/localizedStrings.js:
4755
47562018-10-31 Devin Rousso <drousso@apple.com>
4757
drousso@apple.comf0aebde2018-11-01 04:12:59 +00004758 Web Inspector: display low-power enter/exit events in Timelines and Network node waterfalls
4759 https://bugs.webkit.org/show_bug.cgi?id=190641
4760 <rdar://problem/45319049>
4761
4762 Reviewed by Joseph Pecoraro.
4763
4764 * UserInterface/Protocol/DOMObserver.js:
4765 (WI.DOMObserver.prototype.videoLowPowerChanged): Added.
4766
4767 * UserInterface/Controllers/DOMManager.js:
4768 (WI.DOMManager.prototype.videoLowPowerChanged): Added.
4769
4770 * UserInterface/Models/DOMNode.js:
4771 (WI.DOMNode):
4772 (WI.DOMNode.prototype.get lowPowerRanges): Added.
4773 (WI.DOMNode.prototype.videoLowPowerChanged): Added.
4774 (WI.DOMNode.prototype.canEnterLowPowerMode): Added.
4775
4776 * UserInterface/Views/NetworkTableContentView.js:
4777 (WI.NetworkTableContentView.prototype._populateDomainCell):
4778 (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode):
4779 (WI.NetworkTableContentView.prototype._handleNodeLowPowerChanged): Added.
4780 * UserInterface/Views/NetworkTableContentView.css:
4781 (.network-table :not(.header) .cell.waterfall .waterfall-container > .area):
4782 (.network-table :not(.header) .cell.waterfall .waterfall-container > .area.dom-fullscreen): Added.
4783 (.network-table :not(.header) .cell.waterfall .waterfall-container > .area.low-power): Added.
4784 (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-fullscreen): Deleted.
4785
4786 * UserInterface/Views/DOMNodeEventsContentView.js:
4787 (WI.DOMNodeEventsContentView):
4788 (WI.DOMNodeEventsContentView.prototype.initialLayout):
4789 (WI.DOMNodeEventsContentView.prototype.closed): Deleted.
4790 (WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent): Deleted.
4791
4792 * UserInterface/Views/DOMEventsBreakdownView.js:
4793 (WI.DOMEventsBreakdownView):
4794 (WI.DOMEventsBreakdownView.prototype.initialLayout):
4795 (WI.DOMEventsBreakdownView.prototype.layout): Added.
4796 (WI.DOMEventsBreakdownView.prototype._handleDOMNodeDidFireEvent): Added.
4797 (WI.DOMEventsBreakdownView.prototype._handleDOMNodeLowPowerChanged): Added.
4798 (WI.DOMEventsBreakdownView.prototype.addEvent): Deleted.
4799 (WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime): Deleted.
4800 (WI.DOMEventsBreakdownView.prototype._populateTable): Deleted.
4801 * UserInterface/Views/DOMEventsBreakdownView.css:
4802 (.dom-events-breakdown .graph > .area): Added.
4803 (.dom-events-breakdown .graph > .area.fullscreen):
4804 (.dom-events-breakdown .graph > .area.low-power): Added.
4805
4806 * Localizations/en.lproj/localizedStrings.js:
4807
48082018-10-31 Devin Rousso <drousso@apple.com>
4809
drousso@apple.com4ed15ac2018-11-01 01:18:07 +00004810 Web Inspector: Audit: save imported audits across WebInspector sessions
4811 https://bugs.webkit.org/show_bug.cgi?id=190858
4812 <rdar://problem/45527625>
4813
4814 Reviewed by Brian Burg.
4815
4816 * UserInterface/Base/ObjectStore.js: Added.
4817 (WI.ObjectStore):
4818 (WI.ObjectStore.supported):
4819 (WI.ObjectStore._open):
4820 (WI.ObjectStore.get _databaseName):
4821 (WI.ObjectStore.prototype.associateObject):
4822 (WI.ObjectStore.prototype.async getAll):
4823 (WI.ObjectStore.prototype.async add):
4824 (WI.ObjectStore.prototype.async addObject):
4825 (WI.ObjectStore.prototype.async delete):
4826 (WI.ObjectStore.prototype.async deleteObject):
4827 (WI.ObjectStore.prototype._resolveKeyPath):
4828 (WI.ObjectStore.prototype.async _operation.listener):
4829 (WI.ObjectStore.prototype.async _operation):
4830 Wrapper for a global `IndexedDB` instance for all of WebInspector (per level). Instances of
4831 `WI.ObjectStore` are able to control a given `IDBObjectStore` using a promise-based API.
4832
4833 *NOTE*: due to the constraint that `IDBObjectStore`s are only able to be created when the
4834 owner `IndexedDB` is "upgrade"d, all `WI.ObjectStore` must be declared before the database
4835 is opened for the first time. Additionally, any time a new `WI.ObjectStore` is added, the
4836 `version` needs to be incremented to ensure that the "upgrade" event fires.
4837
4838 To use any of the `*Object` functions, one must implement a `toJSON` on the object provided.
4839 This is so that `WI.ObjectStore` is able to add the resulting identifier value to the owner
4840 object while storing its `toJSON` value in the IndexedDB (e.g. for objects that have cycles).
4841
4842 * UserInterface/Controllers/AuditManager.js:
4843 (WI.AuditManager.prototype.import):
4844 (WI.AuditManager.prototype.loadStoredTests): Added.
4845 (WI.AuditManager.prototype.removeTest): Added.
4846 (WI.AuditManager.prototype._addTest):
4847
4848 * UserInterface/Views/AuditTabContentView.js:
4849 (WI.AuditTabContentView.prototype.initialLayout): Added.
4850 Attempt to load stored audits when the Audit tab is first shown (lazy-load).
4851
4852 * UserInterface/Views/AuditNavigationSidebarPanel.js:
4853 (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
4854 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestRemoved): Added.
4855
4856 * UserInterface/Views/AuditTreeElement.js:
4857 (WI.AuditTreeElement.prototype.ondelete):
4858 Only allow top-level audits to be deleted, as that is what matches the `WI.ObjectStore`.
4859
4860 * UserInterface/Main.html:
4861 * UserInterface/Test.html:
4862
commit-queue@webkit.org5e0ac952018-11-01 00:37:37 +000048632018-10-31 Joseph Pecoraro <pecoraro@apple.com>
4864
4865 Web Inspector: Move a few remaining global WI settings to WI.settings
4866 https://bugs.webkit.org/show_bug.cgi?id=191137
4867
4868 Reviewed by Brian Burg.
4869
4870 Move and better name some of the WI.settings created in Main.js
4871 to WI.settings, alongside other global settings.
4872
4873 * UserInterface/Base/Main.js:
4874 (WI.loaded):
4875 Move settings, and register for settings changes in contentLoaded.
4876
4877 * UserInterface/Base/Setting.js:
4878 New settings, and sort values.
4879
4880 * UserInterface/Test/Test.js:
4881 (WI.loaded):
4882 Update setting values for tests.
4883
4884 * UserInterface/Controllers/NetworkManager.js:
4885 (WI.NetworkManager.prototype.initializeTarget):
4886 * UserInterface/Controllers/RuntimeManager.js:
4887 (WI.RuntimeManager.prototype.initializeTarget):
4888 * UserInterface/Models/DOMNode.js:
4889 (WI.DOMNode.prototype.get children):
4890 (WI.DOMNode.prototype.get nextSibling):
4891 (WI.DOMNode.prototype.get previousSibling):
4892 (WI.DOMNode.prototype.get childNodeCount):
4893 * UserInterface/Protocol/Target.js:
4894 (WI.Target.prototype.initialize):
4895 * UserInterface/Views/DOMTreeContentView.js:
4896 (WI.DOMTreeContentView):
4897 (WI.DOMTreeContentView.prototype.closed):
4898 (WI.DOMTreeContentView.prototype._togglePaintFlashing):
4899 (WI.DOMTreeContentView.prototype._showPaintRectsSettingChanged):
4900 (WI.DOMTreeContentView.prototype._showShadowDOMSettingChanged):
4901 (WI.DOMTreeContentView.prototype._toggleShowsShadowDOMSetting):
4902 * UserInterface/Views/DOMTreeOutline.js:
4903 (WI.DOMTreeOutline):
4904 (WI.DOMTreeOutline.prototype.close):
4905 (WI.DOMTreeOutline.prototype._revealAndSelectNode):
4906 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
4907 (WI.LayerTreeDetailsSidebarPanel.prototype.initialLayout):
4908 (WI.LayerTreeDetailsSidebarPanel.prototype._updateDisplayWithLayers):
4909 * UserInterface/Views/Layers3DContentView.js:
4910 (WI.Layers3DContentView):
4911 (WI.Layers3DContentView.prototype.closed):
4912 (WI.Layers3DContentView.prototype._showPaintRectsSettingChanged):
4913 (WI.Layers3DContentView.prototype._togglePaintFlashing):
4914 * UserInterface/Views/NetworkTableContentView.js:
4915 (WI.NetworkTableContentView):
4916 (WI.NetworkTableContentView.prototype.closed):
4917 (WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):
4918 (WI.NetworkTableContentView.prototype._toggleDisableResourceCache):
4919 * UserInterface/Views/ScriptContentView.js:
4920 (WI.ScriptContentView):
4921 (WI.ScriptContentView.prototype.closed):
4922 (WI.ScriptContentView.prototype._contentDidPopulate):
4923 (WI.ScriptContentView.prototype._enableControlFlowProfilerSettingChanged):
4924 (WI.ScriptContentView.prototype._showJavaScriptTypeInformationSettingChanged):
4925 * UserInterface/Views/SourceCodeTextEditor.js:
4926 (WI.SourceCodeTextEditor.prototype.shown):
4927 (WI.SourceCodeTextEditor.prototype._proceedPopulateWithContent):
4928 (WI.SourceCodeTextEditor.prototype._setTypeTokenAnnotatorEnabledState):
4929 (WI.SourceCodeTextEditor.prototype.set _basicBlockAnnotatorEnabled):
4930 * UserInterface/Views/TextResourceContentView.js:
4931 (WI.TextResourceContentView):
4932 (WI.TextResourceContentView.prototype.closed):
4933 (WI.TextResourceContentView.prototype._contentDidPopulate):
4934 (WI.TextResourceContentView.prototype._enableControlFlowProfilerSettingChanged):
4935 (WI.TextResourceContentView.prototype._showJavaScriptTypeInformationSettingChanged):
4936 Renamed setting.
4937
drousso@apple.comf7078c12018-10-31 23:57:30 +000049382018-10-31 Devin Rousso <drousso@apple.com>
4939
4940 Web Inspector: Styles: missing contextmenu items for links
4941 https://bugs.webkit.org/show_bug.cgi?id=191021
4942
4943 Reviewed by Joseph Pecoraro.
4944
4945 * UserInterface/Views/SpreadsheetStyleProperty.js:
4946 (WI.SpreadsheetStyleProperty.prototype._renderValue):
4947 (WI.SpreadsheetStyleProperty.prototype._handleLinkContextMenu): Added.
4948 If the token is subtype of "link", add contextmenu items to the wrapper element.
4949
4950 * UserInterface/Views/ContextMenuUtilities.js:
4951 (WI.appendContextMenuItemsForURL.showResourceWithOptions):
4952 (WI.appendContextMenuItemsForURL):
4953 Drive-by: don't assume that `options` will be provided.
4954
4955 * Localizations/en.lproj/localizedStrings.js:
4956
nvasilyev@apple.com12f97492018-10-31 22:52:11 +000049572018-10-31 Nikita Vasilyev <nvasilyev@apple.com>
4958
4959 Web Inspector: Styles: implement copying and deletion of multiple properties
4960 https://bugs.webkit.org/show_bug.cgi?id=191037
4961 <rdar://problem/45650078>
4962
4963 Reviewed by Brian Burg.
4964
4965 This patch should only work with "Enable Selection of Multiple Properties" checked. It shouldn't introduce any
4966 changes when this setting is unchecked.
4967
4968 Mousedown on a property (1) and moving the mouse cursor to another property (2) should select properties 1, 2, and
4969 all properties between them until mouseup is fired.
4970
4971 Once selected:
4972 - Pressing Command-C should copy the selected properties.
4973 - Pressing Delete should remove the properties.
4974
4975 * UserInterface/Models/CSSProperty.js:
4976 (WI.CSSProperty.prototype.get formattedText):
4977 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
4978 (.spreadsheet-style-declaration-editor):
4979 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property):
4980 (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
4981 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected):
4982 (.multiple-properties-selection .spreadsheet-style-declaration-editor .property.selected:focus):
4983 (@media (prefers-dark-interface)):
4984
4985 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
4986 (WI.SpreadsheetCSSStyleDeclarationEditor):
4987 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
4988 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.selectProperties):
4989 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.deselectProperties):
4990 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyBlur):
4991 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseEnter):
4992 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyMouseLeave):
4993 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyCopy):
4994 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._handleKeyDown):
4995 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._hasSelectedProperties):
4996 Property selection is defined as two numbers: anchorIndex and focusIndex.
4997 The property with focusIndex is actually focused. The focus outline is replaced by a more subtle left blue border.
4998
4999 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
5000 (.spreadsheet-css-declaration.selecting,):
5001 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
5002 (WI.SpreadsheetCSSStyleDeclarationSection):
5003 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyBlur):
5004 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseEnter):
5005 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorPropertyMouseLeave):
5006 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
5007 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleWindowMouseUp):
5008 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
5009 * UserInterface/Views/SpreadsheetStyleProperty.js:
5010 (WI.SpreadsheetStyleProperty):
5011 Implement copying the same way it's done for DataGrid: by adding copyHandler property to the focused element.
5012 Add `tabIndex=-1` so the property element can be focused.
5013
5014 (WI.SpreadsheetStyleProperty.prototype.get property):
5015 (WI.SpreadsheetStyleProperty.prototype.get selected):
5016 (WI.SpreadsheetStyleProperty.prototype.set selected):
5017 (WI.SpreadsheetStyleProperty.prototype.remove):
5018 (WI.SpreadsheetStyleProperty.prototype.updateStatus):
5019 (WI.SpreadsheetStyleProperty.prototype.handleCopyEvent):
5020 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
5021 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
5022 (WI.SpreadsheetStyleProperty.prototype._handleNamePaste):
5023
drousso@apple.comb92b7282018-10-31 22:00:34 +000050242018-10-31 Devin Rousso <drousso@apple.com>
5025
5026 Web Inspector: Audit: attempt to re-link DOM nodes for imported results
5027 https://bugs.webkit.org/show_bug.cgi?id=191044
5028 <rdar://problem/45687364>
5029
5030 Reviewed by Brian Burg.
5031
5032 When importing a `WI.AuditTestCaseResult`, attempt to `querySelector` for each item in
5033 `data.domNodes`. If a node is found, replace it with that node and show a tree instead.
5034
5035 * UserInterface/Models/AuditTestCase.js:
5036 (WI.AuditTestCase.async fromPayload): Added.
5037 (WI.AuditTestCase.fromPayload): Deleted.
5038
5039 * UserInterface/Models/AuditTestGroup.js:
5040 (WI.AuditTestGroup.async fromPayload): Added.
5041 (WI.AuditTestGroup.fromPayload): Deleted.
5042
5043 * UserInterface/Models/AuditTestCaseResult.js:
5044 (WI.AuditTestCaseResult.async fromPayload): Added.
5045 (WI.AuditTestCaseResult.fromPayload): Deleted.
5046
5047 * UserInterface/Models/AuditTestGroupResult.js:
5048 (WI.AuditTestGroupResult.async fromPayload): Added.
5049 (WI.AuditTestGroupResult.fromPayload): Deleted.
5050
5051 * UserInterface/Controllers/AuditManager.js:
5052 (WI.AuditManager.prototype.import):
5053
joepeck@webkit.org83c76912018-10-31 21:19:11 +000050542018-10-31 Joseph Pecoraro <pecoraro@apple.com>
5055
joepeck@webkit.org10adb122018-10-31 21:48:01 +00005056 Follow-up review comment to r237652.
5057
5058 Reviewed by Brian Burg.
5059
5060 * UserInterface/Controllers/DebuggerManager.js:
5061 (WI.DebuggerManager):
5062
50632018-10-31 Joseph Pecoraro <pecoraro@apple.com>
5064
joepeck@webkit.org83c76912018-10-31 21:19:11 +00005065 Web Inspector: Separate target initialization from frontend initialization
5066 https://bugs.webkit.org/show_bug.cgi?id=191052
5067 <rdar://problem/45658384>
5068
5069 Reviewed by Brian Burg.
5070
5071 * UserInterface/Base/Main.js:
5072 (WI.loaded):
5073 (WI.performOneTimeFrontendInitializationsUsingTarget):
5074 Create the targets after the rest of frontend initialization. This is a step
5075 toward a frontend opening and being told about multiple targets instead of
5076 knowing in advance a single target it is connected to. All backend
5077 messages during frontend initialization now happen with an explicit target.
5078
5079 * UserInterface/Controllers/ApplicationCacheManager.js:
5080 (WI.ApplicationCacheManager):
5081 (WI.ApplicationCacheManager.prototype.initializeTarget):
5082 (WI.ApplicationCacheManager.prototype.initialize):
5083 * UserInterface/Controllers/CSSManager.js:
5084 (WI.CSSManager):
5085 (WI.CSSManager.prototype.initializeTarget):
5086 * UserInterface/Controllers/CanvasManager.js:
5087 (WI.CanvasManager):
5088 (WI.CanvasManager.prototype.initializeTarget):
5089 * UserInterface/Controllers/ConsoleManager.js:
5090 (WI.ConsoleManager):
5091 (WI.ConsoleManager.prototype.initializeLogChannels):
5092 * UserInterface/Controllers/DOMManager.js:
5093 (WI.DOMManager):
5094 (WI.DOMManager.prototype.initializeTarget):
5095 * UserInterface/Controllers/DOMStorageManager.js:
5096 (WI.DOMStorageManager):
5097 (WI.DOMStorageManager.prototype.initializeTarget):
5098 * UserInterface/Controllers/DatabaseManager.js:
5099 (WI.DatabaseManager):
5100 (WI.DatabaseManager.prototype.initializeTarget):
5101 * UserInterface/Controllers/DebuggerManager.js:
5102 (WI.DebuggerManager):
5103 (WI.DebuggerManager.prototype.initializeTarget):
5104 (WI.DebuggerManager.restoreBreakpointsSoon): Deleted.
5105 * UserInterface/Controllers/HeapManager.js:
5106 (WI.HeapManager.prototype.initializeTarget):
5107 * UserInterface/Controllers/IndexedDBManager.js:
5108 (WI.IndexedDBManager):
5109 (WI.IndexedDBManager.prototype.initializeTarget):
5110 * UserInterface/Controllers/LayerTreeManager.js:
5111 (WI.LayerTreeManager.prototype.initializeTarget):
5112 * UserInterface/Controllers/MemoryManager.js:
5113 (WI.MemoryManager.prototype.initializeTarget):
5114 * UserInterface/Controllers/NetworkManager.js:
5115 (WI.NetworkManager):
5116 (WI.NetworkManager.prototype.initializeTarget):
5117 * UserInterface/Controllers/RuntimeManager.js:
5118 (WI.RuntimeManager):
5119 (WI.RuntimeManager.prototype.initializeTarget):
5120 * UserInterface/Controllers/TargetManager.js:
5121 (WI.TargetManager):
5122 (WI.TargetManager.prototype.initializeTargetsWithMainTarget):
5123 * UserInterface/Controllers/TimelineManager.js:
5124 (WI.TimelineManager):
5125 (WI.TimelineManager.prototype.initializeTarget):
5126 (WI.TimelineManager.prototype.set enabledTimelineTypes):
5127 (WI.TimelineManager.prototype._updateAutoCaptureInstruments):
5128 * UserInterface/Controllers/WorkerManager.js:
5129 (WI.WorkerManager):
5130 (WI.WorkerManager.prototype.initializeTarget):
5131 Move Target initialization out of the constructor into a top level
5132 `initializeTarget` function. This will be expected to be called
5133 by any target that the frontend connects to.
5134
5135 (WI.DebuggerManager.prototype._pauseForInternalScriptsDidChange):
5136 Drive-by fix. Update all targets if the setting changes.
5137
5138 (WI.WorkerManager.prototype.workerCreated):
5139 Call initialize on the new target.
5140
5141 * UserInterface/Models/CSSCompletions.js:
5142 (WI.CSSCompletions.initializeCSSCompletions):
5143 (WI.CSSCompletions.requestCSSCompletions): Deleted.
5144 Rename requestCSSCompletions to initializeCSSCompletions to try
5145 and standardize on "initialize" being used for most frontend one
5146 time initialization tasks. This being one such operation that
5147 only needs to be performed once on a target that supports it.
5148
5149 * UserInterface/Protocol/Target.js:
5150 (WI.Target):
5151 (WI.Target.prototype.initialize):
5152 Perform explicit target initialization, such as initializing
5153 the state of all backend domains / agents. This is done by asking
5154 each of the managers to do initialization work for this target.
5155
5156 (WI.Target.prototype.get ApplicationCacheAgent):
5157 (WI.Target.prototype.get CSSAgent):
5158 (WI.Target.prototype.get CanvasAgent):
5159 (WI.Target.prototype.get ConsoleAgent):
5160 (WI.Target.prototype.get DOMAgent):
5161 (WI.Target.prototype.get DOMDebuggerAgent):
5162 (WI.Target.prototype.get DOMStorageAgent):
5163 (WI.Target.prototype.get DatabaseAgent):
5164 (WI.Target.prototype.get DebuggerAgent):
5165 (WI.Target.prototype.get HeapAgent):
5166 (WI.Target.prototype.get IndexedDBAgent):
5167 (WI.Target.prototype.get InspectorAgent):
5168 (WI.Target.prototype.get LayerTreeAgent):
5169 (WI.Target.prototype.get MemoryAgent):
5170 (WI.Target.prototype.get NetworkAgent):
5171 (WI.Target.prototype.get PageAgent):
5172 (WI.Target.prototype.get RecordingAgent):
5173 (WI.Target.prototype.get RuntimeAgent):
5174 (WI.Target.prototype.get ScriptProfilerAgent):
5175 (WI.Target.prototype.get ServiceWorkerAgent):
5176 (WI.Target.prototype.get TargetAgent):
5177 (WI.Target.prototype.get TimelineAgent):
5178 (WI.Target.prototype.get WorkerAgent):
5179 Accessors for all of the agents on a Target.
5180
5181 * UserInterface/Protocol/WorkerTarget.js:
5182 (WI.WorkerTarget):
5183 This is now automatically done in the base class.
5184
5185 * UserInterface/Test/Test.js:
5186 (WI.loaded):
5187 (WI.performOneTimeFrontendInitializationsUsingTarget):
5188 New necessary top level hooks, and initialize more like Main.js.
5189
drousso@apple.com400408f2018-10-31 18:25:54 +000051902018-10-31 Devin Rousso <drousso@apple.com>
5191
5192 Web Inspector: Audit: show metadata for results
5193 https://bugs.webkit.org/show_bug.cgi?id=190853
5194 <rdar://problem/45527623>
5195
5196 Reviewed by Brian Burg.
5197
5198 * UserInterface/Models/AuditTestCase.js:
5199 (WI.AuditTestCase.prototype.async run):
5200 Capture timestamps around the `RunetimeAgent.evaluate` call, as well as the URL of the page.
5201
5202 * UserInterface/Models/AuditTestCaseResult.js:
5203 (WI.AuditTestCaseResult):
5204 (WI.AuditTestCaseResult.fromPayload):
5205 (WI.AuditTestCaseResult.prototype.get metadata): Added.
5206 (WI.AuditTestCaseResult.prototype.toJSON):
5207
5208 * UserInterface/Views/AuditTestCaseContentView.js:
5209 (WI.AuditTestCaseContentView.prototype.initialLayout):
5210 (WI.AuditTestCaseContentView.prototype.layout):
5211 * UserInterface/Views/AuditTestCaseContentView.css:
5212 (.content-view.audit-test-case > header h1): Added.
5213 (.content-view.audit-test-case > header h1 > img): Added.
5214 (.content-view.audit-test-case > header > .metadata): Added.
5215 (.content-view.audit-test-case > header > .metadata > .source > time): Added.
5216 (.content-view.audit-test-case > header > .metadata > .source > a): Added.
5217 (.content-view.audit-test-case > header > .metadata > .duration): Added.
5218 (.content-view.audit-test-case > header > h1): Deleted.
5219 (.content-view.audit-test-case > header > h1 > img): Deleted.
5220 Display any metadata information where the `WI.ScopeBar` is for `WI.AuditTestGroupContentView`s.
5221
5222 * UserInterface/Views/AuditTestContentView.css:
5223 (.content-view.audit-test > header):
5224 (.content-view.audit-test > header > .information): Added.
5225 * UserInterface/Views/AuditTestGroupContentView.css:
5226 (.content-view.audit-test-group > header):
5227 (.content-view.audit-test-group > header > .percentage-pass):
5228 (.content-view.audit-test-group > header > .information): Deleted.
5229 Move common CSS rules to common parent class.
5230
5231 * UserInterface/Base/Utilities.js:
5232
drousso@apple.comdb0b54b2018-10-30 17:48:15 +000052332018-10-30 Devin Rousso <drousso@apple.com>
5234
drousso@apple.comfc989ab2018-10-31 01:11:36 +00005235 Web Inspector: Audit: create Audit Tab
5236 https://bugs.webkit.org/show_bug.cgi?id=190754
5237
5238 Reviewed by Matt Baker.
5239
5240 Create an Audit tab for running audits on the inspected page. Leverage `Runtime.evaluate`
5241 for running the audit tests (arbitrary JavaScript), and use the returned value to generate
5242 a preview UI of the results. All tests/results can be exported/imported to formatted JSON:
5243
5244 `AuditTestCase` JSON:
5245 {
5246 "type": "test-case",
5247 "name": <string>,
5248 <optional> "description": <string>,
5249 "test": <stringified JavaScript function>,
5250 }
5251
5252 `AuditTestGroup` JSON:
5253 {
5254 "type": "test-group",
5255 "name": <string>,
5256 <optional> "description": <string>,
5257 "tests": [...<AuditTestCase, AuditTestGroup>],
5258 }
5259
5260 `AuditTestCaseResult` JSON:
5261 {
5262 "type": "test-case-result",
5263 "name": <string>,
5264 <optional> "description": <string>,
5265 "level": <"pass", "warn", "fail", "error", "unsupported">,
5266 "data": {
5267 "domNodes": [...<stringified CSS path>],
5268 "domAttributes": [...<string>],
5269 "errors": [...<string>],
5270 },
5271 }
5272
5273 `AuditTestGroupResult` JSON:
5274 {
5275 "type": "test-group-result",
5276 "name": <string>,
5277 <optional> "description": <string>,
5278 "results": [...<AuditTestCaseResult, AuditTestGroupResult>],
5279 }
5280
5281 More keys may be added in the future (especially for `AuditTestCaseResult.data`).
5282
5283 * UserInterface/Controllers/AuditManager.js:
5284 (WI.AuditManager):
5285 (WI.AuditManager.synthesizeError): Added.
5286 (WI.AuditManager.prototype.get tests): Added.
5287 (WI.AuditManager.prototype.get results): Added.
5288 (WI.AuditManager.prototype.get runningState): Added.
5289 (WI.AuditManager.prototype.start): Added.
5290 (WI.AuditManager.prototype.stop): Added.
5291 (WI.AuditManager.prototype.import): Added.
5292 (WI.AuditManager.prototype.export): Added.
5293 (WI.AuditManager.prototype._addTest): Added.
5294 (WI.AuditManager.prototype._addResult): Added.
5295 (WI.AuditManager.prototype.get testSuites): Deleted.
5296 (WI.AuditManager.prototype.get reports): Deleted.
5297 (WI.AuditManager.prototype.async runAuditTestByRepresentedObject): Deleted.
5298 (WI.AuditManager.prototype.reportForId): Deleted.
5299 (WI.AuditManager.prototype.removeAllReports): Deleted.
5300 (WI.AuditManager.prototype.async _runTestCase): Deleted.
5301
5302 * UserInterface/Models/AuditTestBase.js: Added.
5303 (WI.AuditTestBases):
5304 (WI.AuditTestBases.prototype.get name):
5305 (WI.AuditTestBases.prototype.get description):
5306 (WI.AuditTestBases.prototype.get runningState):
5307 (WI.AuditTestBases.prototype.get result):
5308 (WI.AuditTestBases.prototype.async start):
5309 (WI.AuditTestBases.prototype.stop):
5310 (WI.AuditTestBases.prototype.clearResult):
5311 (WI.AuditTestBases.prototype.saveIdentityToCookie):
5312 (WI.AuditTestBases.prototype.toJSON):
5313 (WI.AuditTestBases.prototype.async run):
5314
5315 * UserInterface/Models/AuditTestCase.js:
5316 (WI.AuditTestCase):
5317 (WI.AuditTestCase.fromPayload): Added.
5318 (WI.AuditTestCase.prototype.toJSON): Added.
5319 (WI.AuditTestCase.prototype.async run): Added.
5320 (WI.AuditTestCase.prototype.async run.setLevel): Added.
5321 (WI.AuditTestCase.prototype.async run.addError): Added.
5322 (WI.AuditTestCase.prototype.async run.checkResultProperty.addErrorForValueType): Added.
5323 (WI.AuditTestCase.prototype.async run.checkResultProperty): Added.
5324 (WI.AuditTestCase.prototype.async run.async resultArrayForEach): Added.
5325 (WI.AuditTestCase.prototype.get id): Deleted.
5326 (WI.AuditTestCase.prototype.get name): Deleted.
5327 (WI.AuditTestCase.prototype.get suite): Deleted.
5328 (WI.AuditTestCase.prototype.get setup): Deleted.
5329 (WI.AuditTestCase.prototype.get tearDown): Deleted.
5330 (WI.AuditTestCase.prototype.get errorDetails): Deleted.
5331
5332 * UserInterface/Models/AuditTestGroup.js: Added.
5333 (WI.AuditTestGroup):
5334 (WI.AuditTestGroup.fromPayload):
5335 (WI.AuditTestGroup.prototype.get tests):
5336 (WI.AuditTestGroup.prototype.stop):
5337 (WI.AuditTestGroup.prototype.clearResult):
5338 (WI.AuditTestGroup.prototype.async run):
5339 (WI.AuditTestGroup.prototype.toJSON):
5340 (WI.AuditTestGroup.prototype._updateResult):
5341 (WI.AuditTestGroup.prototype._handleTestCompleted):
5342 (WI.AuditTestGroup.prototype._handleTestProgress):
5343
5344 * UserInterface/Models/AuditTestResultBase.js: Added.
5345 (WI.AuditTestResultBase):
5346 (WI.AuditTestResultBase.prototype.get name):
5347 (WI.AuditTestResultBase.prototype.get description):
5348 (WI.AuditTestResultBase.prototype.get result):
5349 (WI.AuditTestResultBase.prototype.get didPass):
5350 (WI.AuditTestResultBase.prototype.get didWarn):
5351 (WI.AuditTestResultBase.prototype.get didFail):
5352 (WI.AuditTestResultBase.prototype.get didError):
5353 (WI.AuditTestResultBase.prototype.get unsupported):
5354 (WI.AuditTestResultBase.prototype.saveIdentityToCookie):
5355 (WI.AuditTestResultBase.prototype.toJSON):
5356
5357 * UserInterface/Models/AuditTestCaseResult.js: Added.
5358 (WI.AuditTestCaseResult):
5359 (WI.AuditTestCaseResult.fromPayload.checkArray):
5360 (WI.AuditTestCaseResult.fromPayload):
5361 (WI.AuditTestCaseResult.prototype.get level):
5362 (WI.AuditTestCaseResult.prototype.get data):
5363 (WI.AuditTestCaseResult.prototype.get didPass):
5364 (WI.AuditTestCaseResult.prototype.get didWarn):
5365 (WI.AuditTestCaseResult.prototype.get didFail):
5366 (WI.AuditTestCaseResult.prototype.get didError):
5367 (WI.AuditTestCaseResult.prototype.get unsupported):
5368 (WI.AuditTestCaseResult.prototype.toJSON):
5369
5370 * UserInterface/Models/AuditTestGroupResult.js: Added.
5371 (WI.AuditTestGroupResult):
5372 (WI.AuditTestGroupResult.fromPayload):
5373 (WI.AuditTestGroupResult.prototype.get results):
5374 (WI.AuditTestGroupResult.prototype.get levelCounts):
5375 (WI.AuditTestGroupResult.prototype.get didPass):
5376 (WI.AuditTestGroupResult.prototype.get didWarn):
5377 (WI.AuditTestGroupResult.prototype.get didFail):
5378 (WI.AuditTestGroupResult.prototype.get didError):
5379 (WI.AuditTestGroupResult.prototype.get unsupported):
5380 (WI.AuditTestGroupResult.prototype.toJSON):
5381
5382 * UserInterface/Views/AuditTabContentView.js: Added.
5383 (WI.AuditTabContentView):
5384 (WI.AuditTabContentView.tabInfo):
5385 (WI.AuditTabContentView.isTabAllowed):
5386 (WI.AuditTabContentView.prototype.get type):
5387 (WI.AuditTabContentView.prototype.get supportsSplitContentBrowser):
5388 (WI.AuditTabContentView.prototype.canShowRepresentedObject):
5389 (WI.AuditTabContentView.prototype.shown):
5390 (WI.AuditTabContentView.prototype.hidden):
5391 (WI.AuditTabContentView.prototype._handleSpace):
5392
5393 * UserInterface/Views/AuditNavigationSidebarPanel.js: Added.
5394 (WI.AuditNavigationSidebarPanel):
5395 (WI.AuditNavigationSidebarPanel.prototype.showDefaultContentView):
5396 (WI.AuditNavigationSidebarPanel.prototype.initialLayout):
5397 (WI.AuditNavigationSidebarPanel.prototype.closed):
5398 (WI.AuditNavigationSidebarPanel.prototype._addTest):
5399 (WI.AuditNavigationSidebarPanel.prototype._addResult):
5400 (WI.AuditNavigationSidebarPanel.prototype._updateStartStopButtonNavigationItemState):
5401 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestAdded):
5402 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestCompleted):
5403 (WI.AuditNavigationSidebarPanel.prototype._handleAuditTestScheduled):
5404 (WI.AuditNavigationSidebarPanel.prototype._treeSelectionDidChange):
5405 (WI.AuditNavigationSidebarPanel.prototype._handleStartStopButtonNavigationItemClicked):
5406 (WI.AuditNavigationSidebarPanel.prototype._handleImportButtonNavigationItemClicked):
5407 * UserInterface/Views/AuditNavigationSidebarPanel.css: Added.
5408 (.sidebar > .panel.navigation.audit > .content):
5409
5410 * UserInterface/Views/AuditTreeElement.js: Added.
5411 (WI.AuditTreeElement):
5412 (WI.AuditTreeElement.prototype.get result):
5413 (WI.AuditTreeElement.prototype.onattach):
5414 (WI.AuditTreeElement.prototype.ondetach):
5415 (WI.AuditTreeElement.prototype.onpopulate):
5416 (WI.AuditTreeElement.prototype.populateContextMenu):
5417 (WI.AuditTreeElement.prototype._start):
5418 (WI.AuditTreeElement.prototype._updateLevel):
5419 (WI.AuditTreeElement.prototype._showRunningSpinner):
5420 (WI.AuditTreeElement.prototype._showRunningProgress):
5421 (WI.AuditTreeElement.prototype._handleTestCaseCompleted):
5422 (WI.AuditTreeElement.prototype._handleTestResultCleared):
5423 (WI.AuditTreeElement.prototype._handleTestCaseScheduled):
5424 (WI.AuditTreeElement.prototype._handleTestGroupCompleted):
5425 (WI.AuditTreeElement.prototype._handleTestGroupProgress):
5426 (WI.AuditTreeElement.prototype._handleTestGroupScheduled):
5427 (WI.AuditTreeElement.prototype._handleStatusClick):
5428 * UserInterface/Views/AuditTreeElement.css: Added.
5429 (.tree-outline .item.audit > .status):
5430 (.tree-outline .item.audit > .status > img):
5431 (.tree-outline .item.audit:matches(.test-case, .test-group) > .status:hover > img):
5432 (.tree-outline .item.audit > .status:not(:hover) > img.show-on-hover, .tree-outline .item.audit.test-group.expanded > .status:not(:hover)):
5433 (.tree-outline .item.audit.test-group.expanded > .status:hover > :not(img), .tree-outline .item.audit.test-group-result.expanded > .status):
5434 (.tree-outline .item.audit > .status > img.pass):
5435 (.tree-outline .item.audit > .status > img.warn):
5436 (.tree-outline .item.audit > .status > img.fail):
5437 (.tree-outline .item.audit > .status > img.error):
5438 (.tree-outline .item.audit > .status > img.unsupported):
5439 (.audit.test-case .icon):
5440 (.audit.test-group .icon):
5441 (.audit.test-case-result .icon):
5442 (.audit.test-group-result .icon):
5443
5444 * UserInterface/Views/AuditTestContentView.js: Added.
5445 (WI.AuditTestContentView):
5446 (WI.AuditTestContentView.prototype.get navigationItems):
5447 (WI.AuditTestContentView.prototype.get headerView):
5448 (WI.AuditTestContentView.prototype.get contentView):
5449 (WI.AuditTestContentView.prototype.get supportsSave):
5450 (WI.AuditTestContentView.prototype.get saveData):
5451 (WI.AuditTestContentView.prototype.initialLayout):
5452 (WI.AuditTestContentView.prototype.layout):
5453 (WI.AuditTestContentView.prototype.shown):
5454 (WI.AuditTestContentView.prototype.hidden):
5455 (WI.AuditTestContentView.prototype.get placeholderElement):
5456 (WI.AuditTestContentView.prototype.set placeholderElement):
5457 (WI.AuditTestContentView.prototype.showRunningPlaceholder):
5458 (WI.AuditTestContentView.prototype.showStoppingPlaceholder):
5459 (WI.AuditTestContentView.prototype.showNoResultPlaceholder):
5460 (WI.AuditTestContentView.prototype.showNoResultDataPlaceholder):
5461 (WI.AuditTestContentView.prototype.showFilteredPlaceholder):
5462 (WI.AuditTestContentView.prototype.hidePlaceholder):
5463 (WI.AuditTestContentView.prototype.applyFilter):
5464 (WI.AuditTestContentView.prototype.resetFilter):
5465 (WI.AuditTestContentView.prototype._exportAudit):
5466 (WI.AuditTestContentView.prototype._updateExportButtonNavigationItemState):
5467 (WI.AuditTestContentView.prototype._showPlaceholder):
5468 (WI.AuditTestContentView.prototype._handleExportButtonNavigationItemClicked):
5469 (WI.AuditTestContentView.prototype._handleTestChanged):
5470 * UserInterface/Views/AuditTestContentView.css: Added.
5471 (.content-view-container > .content-view.audit-test):
5472 (.content-view-container > .content-view.audit-test > header):
5473 (.content-view-container > .content-view.audit-test > header h1):
5474 (.content-view-container > .content-view.audit-test > header p):
5475 (.content-view.audit-test):
5476 (.content-view.audit-test h1):
5477 (.content-view.audit-test > header):
5478 (.content-view.audit-test > header p):
5479 (.content-view.audit-test .audit-test.filtered, .content-view.audit-test .audit-test .message-text-view):
5480 (.content-view.audit-test > section):
5481 (.content-view.audit-test > section > .message-text-view):
5482 (.content-view.audit-test.showing-placeholder):
5483 (.content-view.audit-test.showing-placeholder > section):
5484 (.content-view.audit-test.showing-placeholder > section > :not(.message-text-view)):
5485 (@media (prefers-dark-interface) .content-view.audit-test):
5486
5487 * UserInterface/Views/AuditTestCaseContentView.js: Added.
5488 (WI.AuditTestCaseContentView):
5489 (WI.AuditTestCaseContentView.prototype.initialLayout):
5490 (WI.AuditTestCaseContentView.prototype.layout):
5491 (WI.AuditTestCaseContentView.prototype.showRunningPlaceholder):
5492 * UserInterface/Views/AuditTestCaseContentView.css: Added.
5493 (.content-view-container > .content-view.audit-test-case > header):
5494 (.content-view-container > .content-view.audit-test-case > section > :not(.message-text-view):first-child):
5495 (.content-view.audit-test-case > header > h1):
5496 (.content-view.audit-test-case > header > h1 > img):
5497 (.content-view.audit-test-case > section > :not(.message-text-view)):
5498 (.content-view.audit-test-case > section > :not(.message-text-view):last-child):
5499 (.content-view.audit-test-case > section > :not(.message-text-view) + :not(.message-text-view)):
5500 (.content-view.audit-test-case > section h1):
5501 (.content-view.audit-test-case > section table):
5502 (.content-view.audit-test-case > section table > tr + tr > td):
5503 (.content-view.audit-test-case > section table > tr > td > :not(.tree-outline)):
5504 (.content-view.audit-test-case > section table > tr > td:first-child):
5505 (.content-view.audit-test-case > section > .dom-nodes > table > tr > td:first-child):
5506 (.content-view.audit-test-case > section code):
5507 (.content-view.audit-test-case > section mark):
5508
5509 * UserInterface/Views/AuditTestGroupContentView.js: Added.
5510 (WI.AuditTestGroupContentView):
5511 (WI.AuditTestGroupContentView.prototype.initialLayout):
5512 (WI.AuditTestGroupContentView.prototype.layout):
5513 (WI.AuditTestGroupContentView.prototype.shown):
5514 (WI.AuditTestGroupContentView.prototype.hidden):
5515 (WI.AuditTestGroupContentView.prototype.applyFilter):
5516 (WI.AuditTestGroupContentView.prototype.resetFilter):
5517 (WI.AuditTestGroupContentView.prototype.showRunningPlaceholder):
5518 (WI.AuditTestGroupContentView.prototype._subobjects):
5519 (WI.AuditTestGroupContentView.prototype._updateLevelScopeBar):
5520 (WI.AuditTestGroupContentView.prototype._handleTestGroupCompleted):
5521 (WI.AuditTestGroupContentView.prototype._handleTestGroupProgress):
5522 (WI.AuditTestGroupContentView.prototype._handleTestGroupScheduled):
5523 (WI.AuditTestGroupContentView.prototype._handleLevelScopeBarSelectionChanged):
5524 * UserInterface/Views/AuditTestGroupContentView.css: Added.
5525 (.content-view-container > .content-view.audit-test-group > header):
5526 (.content-view.audit-test-group > header):
5527 (.content-view.audit-test-group.no-matches + .audit-test-group > header):
5528 (.content-view.audit-test-group > header, .content-view.audit-test-group:not(.filtered):last-child > header):
5529 (.content-view.audit-test-group.contains-test-case > header):
5530 (.content-view.audit-test-group.contains-test-case + .audit-test-group.contains-test-case):
5531 (.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):
5532 (.content-view.audit-test-group > header > .information):
5533 (.content-view.audit-test-group > header > .information > p):
5534 (.content-view.audit-test-group > header > nav):
5535 (.content-view.audit-test-group > header > nav:empty):
5536 (.content-view.audit-test-group > header > nav:not(:empty):before):
5537 (.content-view.audit-test-group > header > nav > .scope-bar > li):
5538 (.content-view.audit-test-group > header > nav > .scope-bar > li:not(:hover, .selected)):
5539 (.content-view.audit-test-group > header > nav > .scope-bar > li:last-child):
5540 (.content-view.audit-test-group > header > nav > .scope-bar > li::before):
5541 (.content-view.audit-test-group > header > nav > .scope-bar > li.pass::before):
5542 (.content-view.audit-test-group > header > nav > .scope-bar > li.warn::before):
5543 (.content-view.audit-test-group > header > nav > .scope-bar > li.fail::before):
5544 (.content-view.audit-test-group > header > nav > .scope-bar > li.error::before):
5545 (.content-view.audit-test-group > header > nav > .scope-bar > li.unsupported::before):
5546 (.content-view.audit-test-group > header > .percentage-pass):
5547 (.content-view.audit-test-group > header > .percentage-pass:not(:empty)::after):
5548 (.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):
5549 (.content-view.audit-test-group > section > .audit-test-case:last-child):
5550
5551 * UserInterface/Views/ScopeBarItem.js:
5552 (WI.ScopeBarItem):
5553 (WI.ScopeBarItem.prototype.set selected):
5554 * UserInterface/Views/MultipleScopeBarItem.js:
5555 (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
5556 Add an `independent` option that prevents selection changes from deselecting other
5557 `WI.ScopeBarItem`s in the same `WI.ScopeBar` (`exclusive` takes precedence).
5558
5559 * UserInterface/Views/DOMTreeElement.js:
5560 (WI.DOMTreeElement):
5561 (WI.DOMTreeElement.prototype.highlightAttribute):
5562 (WI.DOMTreeElement.prototype._buildAttributeDOM):
5563 * UserInterface/Views/DOMTreeOutline.css:
5564 (.tree-outline.dom li .highlight):
5565
5566 * UserInterface/Views/ToggleButtonNavigationItem.js:
5567 (WI.ToggleButtonNavigationItem.prototype.set toggled):
5568 Also change the `label` if the `ButtonStyle` has text.
5569
5570 * UserInterface/Base/Setting.js:
5571 * UserInterface/Views/SettingsTabContentView.js:
5572 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
5573
5574 * UserInterface/Views/DividerNavigationItem.css:
5575 (.navigation-bar .item.divider):
5576
5577 * UserInterface/Base/Utilities.js:
5578 (Promise.chain): Added.
5579
5580 * UserInterface/Views/ContentView.js:
5581 (WI.ContentView.createFromRepresentedObject):
5582 (WI.ContentView.isViewable):
5583
5584 * UserInterface/Main.html:
5585 * UserInterface/Base/Main.js:
5586 (WI.loaded):
5587 (WI.contentLoaded):
5588
5589 * UserInterface/Test.html:
5590 * UserInterface/Base/Test.js:
5591 (WI.loaded):
5592
5593 * UserInterface/Images/Audit.svg: Added.
5594 * UserInterface/Images/AuditStart.svg: Added.
5595 * UserInterface/Images/AuditStop.svg: Added.
5596 * UserInterface/Images/AuditTestCase.svg: Added.
5597 * UserInterface/Images/AuditTestCaseResult.svg: Added.
5598 * UserInterface/Images/AuditTestError.svg: Added.
5599 * UserInterface/Images/AuditTestFail.svg: Added.
5600 * UserInterface/Images/AuditTestGroup.svg: Added.
5601 * UserInterface/Images/AuditTestGroupResult.svg: Added.
5602 * UserInterface/Images/AuditTestNoResult.svg: Added.
5603 * UserInterface/Images/AuditTestPass.svg: Added.
5604 * UserInterface/Images/AuditTestUnsupported.svg: Added.
5605 * UserInterface/Images/AuditTestWarn.svg: Added.
5606
5607 * Localizations/en.lproj/localizedStrings.js:
5608
56092018-10-30 Devin Rousso <drousso@apple.com>
5610
drousso@apple.comed2946e2018-10-30 23:06:23 +00005611 Web Inspector: provide options to WI.cssPath for more verbosity
5612 https://bugs.webkit.org/show_bug.cgi?id=190987
5613
5614 Reviewed by Brian Burg.
5615
5616 * UserInterface/Base/DOMUtilities.js:
5617 (WI.cssPath):
5618 (WI.cssPathComponent):
5619 When the option `full` is true, print every attribute along with every node in the hierarchy
5620 until the root is reached. This partially duplicates the effect of an XPath, but instead
5621 uses CSS selectors, making it much more human readable and recognizable.
5622
56232018-10-30 Devin Rousso <drousso@apple.com>
5624
drousso@apple.com4431aba2018-10-30 22:15:16 +00005625 Web Inspector: change WI.ColorWheel to use conic-gradient()
5626 https://bugs.webkit.org/show_bug.cgi?id=189485
5627
5628 Reviewed by Brian Burg.
5629
5630 Use the ("new") HSL `WI.ColorPicker` if `conic-gradient` is supported. Otherwise, use the
5631 ("old") RGB `WI.LegacyColorPicker`.
5632
5633 * UserInterface/Views/ColorWheel.js:
5634 (WI.ColorWheel):
5635 (WI.ColorWheel.prototype.set dimension):
5636 (WI.ColorWheel.prototype.set brightness):
5637 (WI.ColorWheel.prototype.get tintedColor):
5638 (WI.ColorWheel.prototype.set tintedColor):
5639 (WI.ColorWheel.prototype.get rawColor):
5640 (WI.ColorWheel.prototype.get _hue): Added.
5641 (WI.ColorWheel.prototype.get _saturation): Added.
5642 (WI.ColorWheel.prototype._updateColorForMouseEvent):
5643 (WI.ColorWheel.prototype._setCrosshairPosition):
5644 (WI.ColorWheel.prototype._updateGradient): Added.
5645 (WI.ColorWheel.prototype._pointInCircleForEvent.distance): Deleted.
5646 (WI.ColorWheel.prototype._pointInCircleForEvent.angleFromCenterToPoint): Deleted.
5647 (WI.ColorWheel.prototype._pointInCircleForEvent.pointOnCircumference): Deleted.
5648 (WI.ColorWheel.prototype._pointInCircleForEvent): Deleted.
5649 (WI.ColorWheel.prototype._tintedColorToPointAndBrightness): Deleted.
5650 (WI.ColorWheel.prototype._drawRawCanvas): Deleted.
5651 (WI.ColorWheel.prototype._colorAtPointWithBrightness): Deleted.
5652 (WI.ColorWheel.prototype._drawTintedCanvas): Deleted.
5653 (WI.ColorWheel.prototype._draw): Deleted.
5654 * UserInterface/Views/ColorWheel.css:
5655 (.color-wheel > .gradient): Added.
5656 (.color-wheel > .crosshair): Added.
5657
5658 * UserInterface/Views/LegacyColorWheel.js: Copied from Source/WebInspectorUI/UserInterface/Views/ColorWheel.js.
5659
5660 * UserInterface/Views/ColorPicker.js:
5661 (WI.ColorPicker):
5662 (WI.ColorPicker.supportsConicGradient): Added.
5663 (WI.ColorPicker.prototype._updateSliders):
5664
5665 * UserInterface/Models/Geometry.js:
5666 (WI.Point.prototype.distance):
5667
5668 * UserInterface/Main.html:
5669
56702018-10-30 Devin Rousso <drousso@apple.com>
5671
drousso@apple.com7a92a152018-10-30 20:23:43 +00005672 Web Inspector: make the layers sidebar in the Elements tab always visible
5673 https://bugs.webkit.org/show_bug.cgi?id=190158
5674
5675 Reviewed by Brian Burg.
5676
5677 * UserInterface/Views/ElementsTabContentView.js:
5678 (WI.ElementsTabContentView):
5679 * UserInterface/Views/SearchTabContentView.js:
5680 (WI.SearchTabContentView):
5681
56822018-10-30 Devin Rousso <drousso@apple.com>
5683
drousso@apple.comdb0b54b2018-10-30 17:48:15 +00005684 Web Inspector: refactor WI.ScopeBarItem for better extensibility
5685 https://bugs.webkit.org/show_bug.cgi?id=190986
5686
5687 Reviewed by Brian Burg.
5688
5689 Renames `withModifier` to `extendSelection` for clarity of usage, and to allow the changes
5690 in <https://webkit.org/b/190754> (adding an option to allow `WI.ScopeBarItem`s to be
5691 selected without deselcting any other `WI.ScopeBarItem`s) to use the same variable.
5692
5693 * UserInterface/Views/ScopeBarItem.js:
5694 (WI.ScopeBarItem):
5695 (WI.ScopeBarItem.prototype.set selected):
5696 (WI.ScopeBarItem.prototype._handleMouseDown):
5697 (WI.ScopeBarItem.prototype.setSelected): Deleted.
5698
5699 * UserInterface/Views/ScopeBar.js:
5700 (WI.ScopeBar):
5701 (WI.ScopeBar.prototype._populate):
5702 (WI.ScopeBar.prototype._itemSelectionDidChange):
5703
5704 * UserInterface/Views/MultipleScopeBarItem.js:
5705 (WI.MultipleScopeBarItem.prototype.set selectedScopeBarItem):
5706
5707 * UserInterface/Views/CanvasSidebarPanel.js:
5708 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
5709 * UserInterface/Views/LogContentView.js:
5710 (WI.LogContentView):
5711 * UserInterface/Views/NetworkTableContentView.js:
5712 (WI.NetworkTableContentView):
5713 * UserInterface/Views/ResourceSidebarPanel.js:
5714 (WI.ResourceSidebarPanel):
5715 * UserInterface/Views/StorageSidebarPanel.js:
5716 (WI.StorageSidebarPanel):
5717
nvasilyev@apple.comb151eae2018-10-30 03:26:57 +000057182018-10-29 Nikita Vasilyev <nvasilyev@apple.com>
5719
5720 Web Inspector: Flash views with red outline on initial layout
5721 https://bugs.webkit.org/show_bug.cgi?id=191048
5722
5723 Reviewed by Devin Rousso.
5724
5725 * UserInterface/Views/View.js:
5726 (WI.View.prototype._layoutSubtree):
5727 (WI.View.prototype._drawLayoutFlashingOutline):
5728
drousso@apple.com050c4592018-10-29 23:29:13 +000057292018-10-29 Devin Rousso <drousso@apple.com>
5730
drousso@apple.com67b02d32018-10-30 00:10:53 +00005731 Web Inspector: Canvas: show warning when path moves offscreen
5732 https://bugs.webkit.org/show_bug.cgi?id=191016
5733
5734 Reviewed by Joseph Pecoraro.
5735
5736 * UserInterface/Models/RecordingAction.js:
5737 (WI.RecordingAction):
5738 (WI.RecordingAction.deriveCurrentState):
5739 (WI.RecordingAction.prototype.get isVisual):
5740 (WI.RecordingAction.prototype.get warning): Added.
5741 (WI.RecordingAction.prototype.process.checkInvalidCurrentAxisPoint): Added.
5742 (WI.RecordingAction.prototype.process):
5743 (WI.RecordingAction.prototype.get hasVisibleEffect): Deleted.
5744 Replace `hasVisibleEffect` with a more general `warning` value, so that it can be used for
5745 more types of warnings.
5746
5747 * UserInterface/Views/RecordingActionTreeElement.js:
5748 (WI.RecordingActionTreeElement.prototype.onattach):
5749 * UserInterface/Views/RecordingActionTreeElement.css:
5750 (.item.action.visual.warning:not(.invalid) > .status > .warning): Added.
5751 (.item.action.visual.no-visible-effect:not(.invalid) > .status > .warning): Deleted.
5752
5753 * Localizations/en.lproj/localizedStrings.js:
5754
57552018-10-29 Devin Rousso <drousso@apple.com>
5756
drousso@apple.com050c4592018-10-29 23:29:13 +00005757 Web Inspector: refactor code for getting properties via WI.RemoteObject
5758 https://bugs.webkit.org/show_bug.cgi?id=190989
5759
5760 Reviewed by Matt Baker.
5761
5762 * UserInterface/Protocol/RemoteObject.js:
5763 (WI.RemoteObject.prototype.getPropertyDescriptors): Added.
5764 (WI.RemoteObject.prototype.getPropertyDescriptorsAsObject): Added.
5765 (WI.RemoteObject.prototype.getOwnPropertyDescriptors): Deleted.
5766 (WI.RemoteObject.prototype.getAllPropertyDescriptors): Deleted.
5767 (WI.RemoteObject.prototype._getPropertyDescriptors): Deleted.
5768 (WI.RemoteObject.prototype.getOwnPropertyDescriptorsAsObject): Deleted.
5769
5770 * UserInterface/Views/ErrorObjectView.js:
5771 (WI.ErrorObjectView.prototype.update):
5772 * UserInterface/Views/ObjectTreePropertyTreeElement.js:
5773 (WI.ObjectTreePropertyTreeElement.prototype._updateChildren):
5774 * UserInterface/Views/ObjectTreeView.js:
5775 (WI.ObjectTreeView.prototype.update):
5776
timothy_horton@apple.comb68592c2018-10-29 21:22:44 +000057772018-10-29 Tim Horton <timothy_horton@apple.com>
5778
5779 Modernize WebKit nibs and lprojs for localization's sake
5780 https://bugs.webkit.org/show_bug.cgi?id=190911
5781 <rdar://problem/45349466>
5782
5783 Reviewed by Dan Bernstein.
5784
5785 * WebInspectorUI.xcodeproj/project.pbxproj:
5786 English->en
5787
drousso@apple.com5ebf9a82018-10-29 19:13:00 +000057882018-10-29 Devin Rousso <drousso@apple.com>
5789
5790 Web Inspector: prevent Canvas tab from listening for "space" when not visibile
5791 https://bugs.webkit.org/show_bug.cgi?id=190988
5792
5793 Reviewed by Joseph Pecoraro.
5794
5795 * UserInterface/Views/CanvasTabContentView.js:
5796 (WI.CanvasTabContentView):
5797 (WI.CanvasTabContentView.prototype.shown):
5798 (WI.CanvasTabContentView.prototype.hidden): Added.
5799
mattbaker@apple.com572a2e22018-10-27 23:30:03 +000058002018-10-27 Matt Baker <mattbaker@apple.com>
5801
5802 Web Inspector: Table should support deleting rows
5803 https://bugs.webkit.org/show_bug.cgi?id=189803
5804 <rdar://problem/44655709>
5805
5806 Reviewed by Devin Rousso.
5807
5808 Add methods for removing rows from a Table without reloading the data
5809 source. This patch adds Table.prototype.removeRow for removing a single
5810 row, and Table.prototype.removeSelectedRows for removing the entire selection.
5811 The latter also attempts to select a new row, if possible, before removing
5812 the selection.
5813
5814 * UserInterface/Base/IndexSet.js:
5815 (WI.IndexSet.prototype.copy):
5816
5817 * UserInterface/Views/Table.js:
5818 (WI.Table):
5819 (WI.Table.prototype.get numberOfRows):
5820 Cache the number of rows in the table data source. Invalidate cached
5821 value whenever table data is reloaded. Removing rows immediately updates
5822 cached value, without incurring a potentially expensive reload.
5823
5824 (WI.Table.prototype.reloadData):
5825 (WI.Table.prototype.selectRow):
5826 (WI.Table.prototype.deselectRow):
5827 (WI.Table.prototype.removeRow):
5828 (WI.Table.prototype.removeSelectedRows):
5829 Remove the selected rows and select a new row, if possible.
5830 (WI.Table.prototype._updateVisibleRows):
5831 (WI.Table.prototype._handleKeyDown):
5832 (WI.Table.prototype._deselectAllAndSelect):
5833 Drive-by fix: should work when `rowToSelect` isn't already selected.
5834 (WI.Table.prototype._removeRows):
5835 Remove rows and adjust the indexes of rows that are shifted up as a result
5836 of preceding rows being removed.
5837
drousso@apple.com1aaecd82018-10-26 20:43:04 +000058382018-10-26 Devin Rousso <drousso@apple.com>
5839
drousso@apple.com1cf5c2b2018-10-26 21:03:47 +00005840 Web Inspector: simplify some editing code checks
5841 https://bugs.webkit.org/show_bug.cgi?id=190970
5842
5843 Reviewed by Joseph Pecoraro.
5844
5845 * UserInterface/Base/Main.js:
5846 (WI._focusChanged):
5847
5848 * UserInterface/Base/Utilities.js:
5849
5850 * UserInterface/Views/EditingSupport.js:
5851 (WI.enclosingCodeMirror): Added.
5852 (WI.isBeingEdited):
5853 (WI.isEventTargetAnEditableField):
5854
5855 * UserInterface/Views/QuickConsole.js:
5856 (WI.QuickConsole):
5857
58582018-10-26 Devin Rousso <drousso@apple.com>
5859
drousso@apple.com1aaecd82018-10-26 20:43:04 +00005860 Web Inspector: Uncaught Exception: undefined is not an object (evaluating 'this._classListContainer.children')
5861 https://bugs.webkit.org/show_bug.cgi?id=190966
5862
5863 Reviewed by Joseph Pecoraro.
5864
5865 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
5866 (WI.GeneralStyleDetailsSidebarPanel.prototype.layout):
5867 (WI.GeneralStyleDetailsSidebarPanel.prototype._classToggleButtonClicked):
5868 (WI.GeneralStyleDetailsSidebarPanel.prototype._populateClassToggles):
5869 Don't try to reload the class toggles if the we haven't `layout` yet, as the element won't
5870 yet exist.
5871
drousso@apple.comf48ce0e2018-10-25 23:59:43 +000058722018-10-25 Devin Rousso <drousso@apple.com>
5873
5874 Web Inspector: Canvas Recording loading goes significantly slower when "Frame" tree element is expanded
5875 https://bugs.webkit.org/show_bug.cgi?id=190497
5876
5877 Reviewed by Joseph Pecoraro.
5878
5879 Save the `WI.TreeElement` that are in the DOM, and compare that with any `WI.TreeElement`
5880 that would be added to the DOM. If all of the following are true, don't edit the DOM:
5881 - no focused `WI.TreeElement` that isn't currently visible (we would scroll otherwise)
5882 - the set of previously visible `WI.TreeElement`s (e.g. not used for scroll padding) has at
5883 least one of the `WI.TreeElement`s that would be added from this update
5884 - this means that the user hasn't scrolled beyond the padding `WI.TreeElement`
5885 - there are no `WI.TreeElement`s that would be added from this update that were NOT added
5886 in a previous update
5887 - this covers the case that a `WI.TreeElement` is inserted in the visible area
5888
5889 * UserInterface/Base/Utilities.js:
5890
5891 * UserInterface/Views/TreeOutline.js:
5892 (WI.TreeOutline):
5893 (WI.TreeOutline.prototype.registerScrollVirtualizer):
5894 (WI.TreeOutline.prototype.updateVirtualizedElements.walk):
5895 (WI.TreeOutline.prototype.updateVirtualizedElements):
5896
commit-queue@webkit.orga6762f82018-10-25 23:55:12 +000058972018-10-25 Joseph Pecoraro <pecoraro@apple.com>
5898
5899 JSContext Inspector: Broken frontend, DOMAgent is used but does not exist
5900 https://bugs.webkit.org/show_bug.cgi?id=190922
5901 <rdar://problem/45569827>
5902
5903 Reviewed by Devin Rousso.
5904
5905 * UserInterface/Controllers/DOMManager.js:
5906 (WI.DOMManager.prototype.requestDocument):
5907 Feature check for agents that may not exist in a JSContext.
5908
drousso@apple.com98a113e2018-10-25 22:57:45 +000059092018-10-25 Devin Rousso <drousso@apple.com>
5910
drousso@apple.com691b0c52018-10-25 23:09:59 +00005911 Web Inspector: add corner rounding to the network timing "blocks"
5912 https://bugs.webkit.org/show_bug.cgi?id=190379
5913
5914 Reviewed by Timothy Hatcher.
5915
5916 * UserInterface/Views/NetworkTableContentView.css:
5917 (.waterfall .block):
5918 (body[dir=ltr] .waterfall .block): Added.
5919 (body[dir=rtl] .waterfall .block): Added.
5920 (.network-table .waterfall .block + .block): Added.
5921 (.network-table .waterfall .block.filler + .block, .network-table .waterfall .block:not(.request, .response) + :matches(.request, .response)): Added.
5922 (.network-table .waterfall .block:last-child): Added.
5923
59242018-10-25 Devin Rousso <drousso@apple.com>
5925
drousso@apple.com492b7192018-10-25 22:59:29 +00005926 Web Inspector: display fullscreen enter/exit events in Timelines and Network node waterfalls
5927 https://bugs.webkit.org/show_bug.cgi?id=189874
5928 <rdar://problem/44700000>
5929
5930 Reviewed by Joseph Pecoraro.
5931
5932 * Localizations/en.lproj/localizedStrings.js:
5933
5934 * UserInterface/Protocol/DOMObserver.js:
5935 (WI.DOMObserver.prototype.didFireEvent):
5936 * UserInterface/Controllers/DOMManager.js:
5937 (WI.DOMManager.prototype.didFireEvent):
5938 Allow `data` to be passed to the frontend with `didFireEvent`.
5939
5940 * UserInterface/Models/DOMNode.js:
5941 (WI.DOMNode):
5942 (WI.DOMNode.getFullscreenDOMEvents): Added.
5943 (WI.DOMNode.prototype.didFireEvent):
5944 (WI.DOMNode.prototype._handleDOMNodeDidFireEvent): Added.
5945 (WI.DOMNode.prototype._addDOMEvent):
5946 (WI.DOMNode.prototype._shouldListenForEventListeners): Added.
5947 If an event is fired on an ancestor of this node, also record that event in this node's
5948 `domEvents`, including the `originator` node.
5949
5950 * UserInterface/Views/NetworkTableContentView.js:
5951 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
5952 * UserInterface/Views/NetworkTableContentView.css:
5953 (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-fullscreen): Added.
5954
5955 * UserInterface/Views/DOMEventsBreakdownView.js:
5956 (WI.DOMEventsBreakdownView.prototype.initialLayout):
5957 (WI.DOMEventsBreakdownView.prototype._populateTable):
5958 * UserInterface/Views/DOMEventsBreakdownView.css:
5959 (.dom-events-breakdown .graph > .area.fullscreen): Added.
5960 (.dom-events-breakdown .inherited > .name, .dom-events-breakdown .inherited > .graph > .point): Added.
5961 (.dom-events-breakdown:not(.has-inherited) .originator): Added.
5962
59632018-10-25 Devin Rousso <drousso@apple.com>
5964
drousso@apple.com98a113e2018-10-25 22:57:45 +00005965 Web Inspector: Network: more aggressively snap timing blocks together
5966 https://bugs.webkit.org/show_bug.cgi?id=190439
5967
5968 Reviewed by Timothy Hatcher.
5969
5970 * UserInterface/Views/NetworkTableContentView.js:
5971 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
5972 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
5973 If the time difference between the end of the previous block and the start of this block
5974 would result in less than 2px of space, extend the next block back to the previous block.
5975
drousso@apple.comae995422018-10-24 19:27:27 +000059762018-10-24 Devin Rousso <drousso@apple.com>
5977
drousso@apple.com17fa0662018-10-24 22:12:54 +00005978 Web Inspector: popovers for function source code are malformed
5979 https://bugs.webkit.org/show_bug.cgi?id=190859
5980
5981 Reviewed by Joseph Pecoraro.
5982
5983 Previously, the `WI.Popover` would be drawn twice: once when the
5984 `WI.CodeMirrorTokenTrackingController` determines that the user has hovered on a function
5985 token, and once again when the source for that function is formatted (after being retrieved).
5986 In the case that the formatter is able to return the prettified source within a frame (or
5987 two), the `WI.Popover` is still in the middle of animating to its new size, meaning that the
5988 changes made by the formatted `update` will be overridden on the next rAF (creates a flash).
5989
5990 * UserInterface/Views/Popover.js:
5991 (WI.Popover.prototype):
5992 (WI.Popover.prototype._animateFrame.drawBackground):
5993 (WI.Popover.prototype._drawBackground):
5994 Add a member variable to make sure that there is only ever one rAF firing at a time.
5995 Drive-by: rework the background code to only use one canvas.
5996
5997 * UserInterface/Views/SourceCodeTextEditor.js:
5998 (WI.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
5999 Don't show the `WI.Popover` until the formatter has finished prettifying the function's
6000 source code, as otherwise there is brief moment that the popover appears and is empty.
6001
60022018-10-24 Devin Rousso <drousso@apple.com>
6003
drousso@apple.coma9d4a382018-10-24 20:19:39 +00006004 Web Inspector: REGRESSION (r237232): changing resources via up/down blurs the TreeOutline in Resources
6005 https://bugs.webkit.org/show_bug.cgi?id=190862
6006
6007 Reviewed by Matt Baker.
6008
6009 * UserInterface/Views/TextEditor.js:
6010 (WI.TextEditor.prototype.set selectedTextRange):
6011 Don't `focus` unless the `activeElement` is not a WebInspector element (e.g. <body>),
6012 meaning that the previously focused element has been removed from the DOM and no longer
6013 needs to keep the focus.
6014
60152018-10-24 Devin Rousso <drousso@apple.com>
6016
drousso@apple.comae995422018-10-24 19:27:27 +00006017 Web Inspector: CSP request payload on medium.com is unreadable, should be pretty-printed
6018 https://bugs.webkit.org/show_bug.cgi?id=190354
6019 <rdar://problem/45090894>
6020
6021 Reviewed by Joseph Pecoraro.
6022
6023 * UserInterface/Views/TextEditor.js:
6024 (WI.TextEditor.prototype.set string.update):
6025 (WI.TextEditor.prototype._attemptToDetermineMIMEType): Added.
6026 If the content doesn't already have a MIME type, attempt to determine one by trying to
6027 format it as "javascript" (e.g. request JSON that is simply missing a MIME type).
6028
6029 * UserInterface/Views/TextContentView.js:
6030 (WI.TextContentView):
6031 (WI.TextContentView.prototype._handleTextEditorMIMETypeChanged): Added.
6032 * UserInterface/Views/TextResourceContentView.js:
6033 (WI.TextResourceContentView):
6034 (WI.TextResourceContentView.prototype._handleTextEditorMIMETypeChanged): Added.
6035 * UserInterface/Views/ScriptContentView.js:
6036 (WI.ScriptContentView):
6037 (WI.ScriptContentView.prototype._handleTextEditorMIMETypeChanged): Added.
6038 Enable the "Pretty Print" navigation button if the MIME type changes to something that is
6039 able to be formatted.
6040 Drive-by: reorder the creation of the "Pretty Print" button so that it exists if
6041 `_attemptToDetermineMIMEType` finishes synchronously.
6042
drousso@apple.comc2202bc2018-10-23 09:50:14 +000060432018-10-23 Devin Rousso <drousso@apple.com>
6044
drousso@apple.com20429f22018-10-23 09:52:54 +00006045 Uncaught Exception: TypeError: null is not an object (evaluating 'mouseBlock.addEventListener')
6046 https://bugs.webkit.org/show_bug.cgi?id=190766
6047
6048 Reviewed by Brian Burg.
6049
6050 * UserInterface/Views/NetworkTableContentView.js:
6051 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
6052 When creating the `mouseBlock`, if the `startTimestamp` and `endTimestamp` are equal, we
6053 don't create an element. If this is true for the total range of the `WI.Resouce` (meaning
6054 its `startTime` and `responseEnd`), don't even try to create blocks.
6055
60562018-10-23 Devin Rousso <drousso@apple.com>
6057
drousso@apple.comc2202bc2018-10-23 09:50:14 +00006058 Web Inspector: "Queued NaNms" in Network tab
6059 https://bugs.webkit.org/show_bug.cgi?id=190767
6060 <rdar://problem/45420859>
6061
6062 Reviewed by Brian Burg.
6063
6064 * UserInterface/Models/ResourceTimingData.js:
6065 (WI.ResourceTimingData.prototype.get fetchStart):
6066 If the `WI.ResourceTimingData` has no `fetchStart` use the associated `WI.Resource`'s
6067 `requestSentTimestamp` (just like `startTime`).
6068
commit-queue@webkit.org15bf58d2018-10-22 19:24:04 +000060692018-10-22 Joseph Pecoraro <pecoraro@apple.com>
6070
6071 Web Inspector: Open Quickly dialog doesn't show named scripts that appear in the debugger sidebar
6072 https://bugs.webkit.org/show_bug.cgi?id=190649
6073
6074 Reviewed by Devin Rousso.
6075
6076 * UserInterface/Views/OpenResourceDialog.js:
6077 (WI.OpenResourceDialog.prototype.didPresentDialog):
6078 (WI.OpenResourceDialog.prototype._addResourcesForTarget):
6079 (WI.OpenResourceDialog.prototype._addScriptsForTarget):
6080 Include non-resource named scripts from the main target in
6081 the open quickly dialog.
6082
commit-queue@webkit.orgc52a4802018-10-19 18:01:48 +000060832018-10-19 Joseph Pecoraro <pecoraro@apple.com>
6084
6085 Web Inspector: Remove unused member variable of DebuggerSidebarPanel
6086 https://bugs.webkit.org/show_bug.cgi?id=190743
6087
6088 Reviewed by Devin Rousso.
6089
6090 * UserInterface/Views/DebuggerSidebarPanel.js:
6091 (WI.DebuggerSidebarPanel):
6092
drousso@apple.com1cfcb802018-10-17 19:46:54 +000060932018-10-17 Devin Rousso <drousso@apple.com>
6094
6095 Web Inspector: Quickly Open to line/column does should have caret indicating where the position is
6096 https://bugs.webkit.org/show_bug.cgi?id=190643
6097
6098 Reviewed by Matt Baker.
6099
6100 * UserInterface/Views/TextEditor.js:
6101 (WI.TextEditor.prototype.set selectedTextRange):
6102 (WI.TextEditor.prototype.revealPosition):
6103 Ensure that CodeMirror is focused before attempting to `setSelection`.
6104 Drive-by: allow selections past the "end" of the line (since there is a `\n` or `\r`).
6105
6106 * UserInterface/Views/SourceCodeTextEditor.js:
6107 (WI.SourceCodeTextEditor.prototype.dialogWasDismissedWithRepresentedObject):
6108 Remove the extra `focus` call after dismissing the `WI.GoToLineDialog` since it is now
6109 handled by `WI.TextEditor` via `revealPosition`.
6110
commit-queue@webkit.org9298f2e2018-10-17 01:53:30 +000061112018-10-16 Joseph Pecoraro <pecoraro@apple.com>
6112
6113 Web Inspector: ⌃G to jump to line in CSS file wipes the line
6114 https://bugs.webkit.org/show_bug.cgi?id=190645
6115
6116 Reviewed by Devin Rousso.
6117
6118 * UserInterface/Base/Main.js:
6119 * UserInterface/Views/Dialog.js:
6120 (WI.Dialog.prototype.dismiss):
6121 * UserInterface/Views/SourceCodeTextEditor.js:
6122 (WI.SourceCodeTextEditor.prototype.dialogWasDismissed): Deleted.
6123 Rename the handler when dismissing a dialog with a value so that
6124 it is clear this is only on a successful value and not an invalid value.
6125 Dialog now only calls this delegate with a valid value. This addresses
6126 exceptions seen when the GoToLineDialog was dimissed via Escape and
6127 an unexpected `null` value was being handled in the delegate.
6128
6129 * UserInterface/Views/GoToLineDialog.js:
6130 (WI.GoToLineDialog.prototype._handleKeydownEvent):
6131 * UserInterface/Views/OpenResourceDialog.js:
6132 (WI.OpenResourceDialog.prototype._handleKeydownEvent):
6133 Prevent default on the event whenever we dismiss the dialog.
6134 Without this, the key event was also being sent to the editor.
6135 In this case, that meant an "Enter" key was replacing the new
6136 selection in the TextEditor with a newline!
6137
drousso@apple.com554bd6b2018-10-16 16:47:07 +000061382018-10-16 Devin Rousso <drousso@apple.com>
6139
drousso@apple.com798f34d2018-10-16 19:23:21 +00006140 Web Inspector: Canvas: capture previously saved states and add them to the recording payload
6141 https://bugs.webkit.org/show_bug.cgi?id=190473
6142
6143 Reviewed by Joseph Pecoraro.
6144
6145 Instead of sending a single object of the current state of the context, send an array of
6146 objects, one for each restore point. When replaying, recreate each restore point before
6147 applying the selected action(s).
6148
6149 * UserInterface/Models/Recording.js:
6150 (WI.Recording):
6151 (WI.Recording.fromPayload):
6152 (WI.Recording.prototype.toJSON):
6153 (WI.Recording.prototype.async._process):
6154 (WI.Recording.prototype.async._swizzleState): Added.
6155 * UserInterface/Models/RecordingAction.js:
6156 (WI.RecordingAction):
6157 (WI.RecordingAction.deriveCurrentState): Added.
6158 (WI.RecordingAction.prototype.get states): Added.
6159 (WI.RecordingAction.prototype.process):
6160 (WI.RecordingAction.prototype.get state): Deleted.
6161 Drive-by: when `process`ing, also check to see if any values in the current state changed
6162 outside of those expected in `_stateModifiers` (e.g. `restore` may modify some state values).
6163
6164 * UserInterface/Views/RecordingContentView.js:
6165 (WI.RecordingContentView.prototype._generateContentCanvas2D):
6166
6167 * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
6168 (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
6169 Default to showing the most recent (current) state.
6170
6171 * UserInterface/Views/CanvasTabContentView.js:
6172 (WI.CanvasTabContentView.prototype.initialLayout): Added.
6173 (WI.CanvasTabContentView.prototype._addCanvas):
6174 (WI.CanvasTabContentView.prototype._removeCanvas):
6175 (WI.CanvasTabContentView.prototype._addRecording): Added.
6176 (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
6177 (WI.CanvasTabContentView.prototype._recordingAdded): Deleted.
6178 * UserInterface/Controllers/CanvasManager.js:
6179 (WI.CanvasManager):
6180 (WI.CanvasManager.prototype.get importedRecordings): Added.
6181 (WI.CanvasManager.prototype.importRecording):
6182 Drive-by: store imported recordings on `WI.CanvasManager` so that if the Canvas tab is
6183 closed we can still show the list of imported recordings.
6184
61852018-10-16 Devin Rousso <drousso@apple.com>
6186
drousso@apple.comd773d1d2018-10-16 19:13:15 +00006187 Web Inspector: Canvas recording sidebar scroll position lost after switching tabs
6188 https://bugs.webkit.org/show_bug.cgi?id=190482
6189
6190 Reviewed by Joseph Pecoraro.
6191
6192 * UserInterface/Views/Sidebar.js:
6193 (WI.Sidebar.prototype.removeSidebarPanel):
6194 (WI.Sidebar.prototype.set selectedSidebarPanel):
6195 Call `hidden` before setting `selected` to `false`, as that sets `display: none;` on the
6196 element, which sets the `scrollTop` to `0`.
6197
6198 * UserInterface/Views/SidebarPanel.js:
6199 (WI.SidebarPanel.prototype.shown):
6200 (WI.SidebarPanel.prototype.hidden):
6201 (WI.SidebarPanel.prototype.get scrollElement): Added.
6202 Allow subclasses to specify the scrolling element for saving/restoring the scroll position.
6203
6204 * UserInterface/Views/CanvasSidebarPanel.js:
6205 (WI.CanvasSidebarPanel.prototype.get scrollElement): Added.
6206 * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
6207 (WI.RecordingStateDetailsSidebarPanel.prototype.get scrollElement): Added.
6208
62092018-10-16 Devin Rousso <drousso@apple.com>
6210
drousso@apple.comf7aa1112018-10-16 19:09:29 +00006211 Web Inspector: Should be a way to go directly from an event in the overview view to the specialized timeline for that event
6212 https://bugs.webkit.org/show_bug.cgi?id=135307
6213 <rdar://problem/17273966>
6214
6215 Reviewed by Joseph Pecoraro.
6216
6217 When a `WI.TimelineRecordBar` is clicked, call up the delegate chain to the overview and
6218 adjust the currently selected `WI.TimelineRecordBar` among the `WI.TimelineOverviewGraph`s.
6219 Similarly, selecting a `WI.DataGridNode` in any `WI.TimelineView` subclass will use the same
6220 logic to select the corresponding `WI.TimelineRecordBar`.
6221
6222 * UserInterface/Views/TimelineOverview.js:
6223 (WI.TimelineOverview):
6224 (WI.TimelineOverview.prototype.reset):
6225 (WI.TimelineOverview.prototype._recordSelected):
6226
6227 * UserInterface/Views/TimelineOverviewGraph.js:
6228 (WI.TimelineOverviewGraph):
6229 (WI.TimelineOverviewGraph.prototype.set selectedRecord):
6230 (WI.TimelineOverviewGraph.prototype.get selectedRecordBar): Added.
6231 (WI.TimelineOverviewGraph.prototype.set selectedRecordBar): Added.
6232 (WI.TimelineOverviewGraph.prototype.timelineRecordBarClicked): Added.
6233 (WI.TimelineOverviewGraph.prototype._needsSelectedRecordLayout):
6234
6235 * UserInterface/Views/TimelineRecordBar.js:
6236 (WI.TimelineRecordBar):
6237 (WI.TimelineRecordBar.prototype.get selected): Added.
6238 (WI.TimelineRecordBar.prototype.set selected): Added.
6239 (WI.TimelineRecordBar.prototype._handleClick): Added.
6240 * UserInterface/Views/TimelineRecordBar.css:
6241 (.timeline-record-bar.selected > .segment): Added.
6242 Add a `delegate` that is notified whenever the element is clicked.
6243
6244 * UserInterface/Views/TimelineDataGridNode.js:
6245 (WI.TimelineDataGridNode.prototype.refreshGraph.createBar):
6246 * UserInterface/Views/LayoutTimelineOverviewGraph.js:
6247 (WI.LayoutTimelineOverviewGraph.prototype.updateSelectedRecord):
6248 (WI.LayoutTimelineOverviewGraph.prototype._updateRowLayout.createBar):
6249 * UserInterface/Views/NetworkTimelineOverviewGraph.js:
6250 (WI.NetworkTimelineOverviewGraph.prototype.layout.createBar):
6251 * UserInterface/Views/ScriptTimelineOverviewGraph.js:
6252 (WI.ScriptTimelineOverviewGraph.prototype.layout.createBar):
6253 (WI.ScriptTimelineOverviewGraph.prototype.updateSelectedRecord):
6254
6255 * UserInterface/Views/TimelineRecordingContentView.js:
6256 (WI.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
6257
62582018-10-16 Devin Rousso <drousso@apple.com>
6259
drousso@apple.com554bd6b2018-10-16 16:47:07 +00006260 Web Inspector: sequences of spaces longer than 16 don't show a dot
6261 https://bugs.webkit.org/show_bug.cgi?id=190528
6262
6263 Reviewed by Matt Baker.
6264
6265 * UserInterface/Views/CodeMirrorAdditions.js:
6266 Create a new CSS rule and add it to a unique <style> whenever a whitespace sequence with
6267 a length is seen for the first time.
6268
6269 * UserInterface/Views/CodeMirrorOverrides.css:
6270 (.show-whitespace-characters .CodeMirror .cm-whitespace-1::before): Deleted.
6271 (.show-whitespace-characters .CodeMirror .cm-whitespace-2::before): Deleted.
6272 (.show-whitespace-characters .CodeMirror .cm-whitespace-3::before): Deleted.
6273 (.show-whitespace-characters .CodeMirror .cm-whitespace-4::before): Deleted.
6274 (.show-whitespace-characters .CodeMirror .cm-whitespace-5::before): Deleted.
6275 (.show-whitespace-characters .CodeMirror .cm-whitespace-6::before): Deleted.
6276 (.show-whitespace-characters .CodeMirror .cm-whitespace-7::before): Deleted.
6277 (.show-whitespace-characters .CodeMirror .cm-whitespace-8::before): Deleted.
6278 (.show-whitespace-characters .CodeMirror .cm-whitespace-9::before): Deleted.
6279 (.show-whitespace-characters .CodeMirror .cm-whitespace-10::before): Deleted.
6280 (.show-whitespace-characters .CodeMirror .cm-whitespace-11::before): Deleted.
6281 (.show-whitespace-characters .CodeMirror .cm-whitespace-12::before): Deleted.
6282 (.show-whitespace-characters .CodeMirror .cm-whitespace-13::before): Deleted.
6283 (.show-whitespace-characters .CodeMirror .cm-whitespace-14::before): Deleted.
6284 (.show-whitespace-characters .CodeMirror .cm-whitespace-15::before): Deleted.
6285 (.show-whitespace-characters .CodeMirror .cm-whitespace-16::before): Deleted.
6286
commit-queue@webkit.org1e6bdf32018-10-15 23:10:20 +000062872018-10-15 Charles Vazac <cvazac@gmail.com>
6288
6289 Web Inspector: Expose Server Timing Response Headers in Network Tab
6290 https://bugs.webkit.org/show_bug.cgi?id=190440
6291
6292 Reviewed by Joseph Pecoraro.
6293
6294 * Localizations/en.lproj/localizedStrings.js: new key "Server Timing:"
6295 * UserInterface/Main.html: add reference to Models/ServerTimingEntry.js
6296 * UserInterface/Models/Resource.js:
6297 (WI.Resource.prototype.get serverTiming):
6298 (WI.Resource.prototype.updateForResponse):
6299 * UserInterface/Models/ServerTimingEntry.js: Added.
6300 (WI.ServerTimingEntry):
6301 (WI.ServerTimingEntry.parseHeaders): parse raw response headers into an array of ServerTimingEntry objects
6302 (WI.ServerTimingEntry.parseHeaders.consumeDelimiter):
6303 (WI.ServerTimingEntry.parseHeaders.consumeToken):
6304 (WI.ServerTimingEntry.):
6305 * UserInterface/Test.html: add reference to Models/ServerTimingEntry.js
6306 * UserInterface/Views/ResourceTimingBreakdownView.js:
6307 (WI.ResourceTimingBreakdownView.prototype._appendServerTimingRow): render a table row per ServerTimingEntry object
6308 (WI.ResourceTimingBreakdownView.prototype.initialLayout):
6309 (WI.ResourceTimingBreakdownView):
6310
nvasilyev@apple.comfcf8b512018-10-15 22:51:45 +000063112018-10-15 Nikita Vasilyev <nvasilyev@apple.com>
6312
6313 Web Inspector: Dark Mode: pseudo elements in DOM tree are too dark
6314 https://bugs.webkit.org/show_bug.cgi?id=190541
6315 <rdar://problem/45238443>
6316
6317 Reviewed by Matt Baker.
6318
6319 * UserInterface/Views/DOMTreeOutline.css:
6320 (@media (prefers-dark-interface)):
6321 (.tree-outline.dom .html-pseudo-element):
6322
mattbaker@apple.com297e4ae2018-10-15 21:21:16 +000063232018-10-15 Matt Baker <mattbaker@apple.com>
6324
6325 Web Inspector: REGRESSION (r233824): execution highlight range missing/incorrect in pretty printed code
6326 https://bugs.webkit.org/show_bug.cgi?id=188082
6327 <rdar://problem/42640580>
6328
6329 Reviewed by Joseph Pecoraro.
6330
6331 * UserInterface/Views/SourceCodeTextEditor.js:
6332 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
6333 TextEditor expects positions returned by the delegate to be relative to
6334 the editor's text content, not the original source code content.
6335
6336 * UserInterface/Views/TextEditor.js:
6337 (WI.TextEditor.prototype._updateExecutionRangeHighlight):
6338 Convert positions to CodeMirror format here rather than in the delegate
6339 method, which is a layer removed from CodeMirror.
6340
nvasilyev@apple.comaa4ad692018-10-15 17:27:02 +000063412018-10-15 Nikita Vasilyev <nvasilyev@apple.com>
6342
nvasilyev@apple.com0c0d3302018-10-15 21:14:52 +00006343 Web Inspector: Dark Mode: unreadable text when hovering CSS properties while holding Command
6344 https://bugs.webkit.org/show_bug.cgi?id=190548
6345 <rdar://problem/45242098>
6346
6347 Reviewed by Joseph Pecoraro.
6348
6349 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
6350 (.meta-key-pressed .spreadsheet-css-declaration:not(.locked) :matches(.name, .value):not(.editing):hover):
6351 In the light mode the color remained the same.
6352
63532018-10-15 Nikita Vasilyev <nvasilyev@apple.com>
6354
nvasilyev@apple.comaa4ad692018-10-15 17:27:02 +00006355 Web Inspector: Dark Mode: style editor warnings should not look like errors
6356 https://bugs.webkit.org/show_bug.cgi?id=190569
6357 <rdar://problem/45261689>
6358
6359 Reviewed by Matt Baker.
6360
6361 Make warnings in the style editor look the same as warnings in the content views.
6362 Unify warning and error background color variables.
6363
6364 * UserInterface/Views/LogContentView.css:
6365 (@media (prefers-dark-interface)):
6366 (.console-error-level):
6367 (.console-warning-level):
6368 * UserInterface/Views/SourceCodeTextEditor.css:
6369 (.source-code.text-editor > .CodeMirror .warning):
6370 (.source-code.text-editor > .CodeMirror .error):
6371 (.source-code.text-editor > .CodeMirror .issue-widget.warning):
6372 (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
6373 (.source-code.text-editor > .CodeMirror .issue-widget.error):
6374 (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
6375 (@media (prefers-dark-interface)):
6376 (.source-code.text-editor > .CodeMirror .issue-widget):
6377 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
6378 (.spreadsheet-style-declaration-editor .property.has-warning):
6379 (.spreadsheet-style-declaration-editor .property.has-warning .warning):
6380 (@media (prefers-dark-interface)):
6381 (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
6382 * UserInterface/Views/Variables.css:
6383 (:root):
6384 (@media (prefers-dark-interface)):
6385
drousso@apple.comc0de3e02018-10-12 23:52:09 +000063862018-10-12 Devin Rousso <drousso@apple.com>
6387
6388 Web Inspector: Canvas: previews aren't removed when the parent view is hidden
6389 https://bugs.webkit.org/show_bug.cgi?id=190525
6390
6391 Reviewed by Matt Baker.
6392
6393 * UserInterface/Views/CanvasTabContentView.js:
6394 (WI.CanvasTabContentView.prototype.attached):
6395
6396 * UserInterface/Controllers/CanvasManager.js:
6397 (WI.CanvasManager.prototype.get canvases):
6398 (WI.CanvasManager.prototype.get shaderPrograms):
6399 Drive-by: simplify these getters.
6400
commit-queue@webkit.org9b2bca72018-10-12 22:59:47 +000064012018-10-12 Joseph Pecoraro <pecoraro@apple.com>
6402
6403 Web Inspector: Dark Mode: Highlight text in Network Headers search is too dark
6404 https://bugs.webkit.org/show_bug.cgi?id=190510
6405
6406 Reviewed by Devin Rousso.
6407
6408 * UserInterface/Views/ResourceHeadersContentView.css:
6409 (.resource-headers.showing-find-banner .search-highlight):
6410 Use adaptive text-color.
6411
nvasilyev@apple.comf0ef7e02018-10-12 21:30:17 +000064122018-10-12 Nikita Vasilyev <nvasilyev@apple.com>
6413
6414 Web Inspector: Dark Mode: wrong color used for "goto arrow" for selected DOM breakpoint tree element
6415 https://bugs.webkit.org/show_bug.cgi?id=190180
6416 <rdar://problem/44927654>
6417
6418 Reviewed by Matt Baker.
6419
6420 * UserInterface/Views/Main.css:
6421 (@media (prefers-dark-interface)):
6422 (:focus .selected .go-to-arrow):
6423
drousso@apple.com6c3e6ef2018-10-12 02:30:18 +000064242018-10-11 Devin Rousso <drousso@apple.com>
6425
6426 Web Inspector: Network: detail view reverts to "Response" when new requests are added
6427 https://bugs.webkit.org/show_bug.cgi?id=190443
6428
6429 Reviewed by Joseph Pecoraro.
6430
6431 * UserInterface/Views/NetworkTableContentView.js:
6432 (WI.NetworkTableContentView.prototype._showDetailView):
6433 Return early if we are already showing a detail view for the selected object.
6434
mattbaker@apple.com25d1c432018-10-11 21:46:43 +000064352018-10-11 Matt Baker <mattbaker@apple.com>
6436
6437 Web Inspector: remove unused TreeOutline style .force-focus
6438 https://bugs.webkit.org/show_bug.cgi?id=190480
6439 <rdar://problem/45203484>
6440
6441 Reviewed by Joseph Pecoraro.
6442
6443 * UserInterface/Views/CallFrameTreeElement.css:
6444 (.tree-outline:focus .item.call-frame.selected .status > .status-image):
6445 (.tree-outline:matches(:focus, .force-focus) .item.call-frame.selected .status > .status-image): Deleted.
6446
6447 * UserInterface/Views/CanvasSidebarPanel.css:
6448 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:focus .item.processing.selected .subtitle > progress):
6449 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Deleted.
6450
6451 * UserInterface/Views/DataGrid.css:
6452 (body[dir=ltr] .data-grid:focus tr.selected td:not(:last-child)):
6453 (body[dir=rtl] .data-grid:focus tr.selected td:not(:last-child)):
6454 (.data-grid:focus tr.parent.selected td.disclosure::before):
6455 (.data-grid:focus tr.parent.expanded.selected td.disclosure::before):
6456 (.data-grid:focus tr.selected):
6457 (.data-grid:focus tr.selected td .subtitle):
6458 (body:not(.window-inactive, .window-docked-inactive) .data-grid:focus tr.editable.selected .cell-content > input):
6459 (@media (prefers-dark-interface)):
6460 (body[dir=ltr] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
6461 (body[dir=rtl] .data-grid:matches(:focus, .force-focus) tr.selected td:not(:last-child)): Deleted.
6462 (.data-grid:matches(:focus, .force-focus) tr.parent.selected td.disclosure::before): Deleted.
6463 (.data-grid:matches(:focus, .force-focus) tr.parent.expanded.selected td.disclosure::before): Deleted.
6464 (.data-grid:matches(:focus, .force-focus) tr.selected): Deleted.
6465 (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle): Deleted.
6466 (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input): Deleted.
6467
6468 * UserInterface/Views/Main.css:
6469 (:focus .selected .go-to-arrow):
6470 (:focus .selected .go-to-arrow:active):
6471 (:matches(:focus, .force-focus) .selected .go-to-arrow): Deleted.
6472 (:matches(:focus, .force-focus) .selected .go-to-arrow:active): Deleted.
6473
6474 * UserInterface/Views/ProfileView.css:
6475 (.profile > .data-grid:focus tr.selected td .location):
6476 (.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location): Deleted.
6477
6478 * UserInterface/Views/RecordingActionTreeElement.css:
6479 (.tree-outline:focus .item.action.selected:not(.initial-state, .invalid) > .icon):
6480 (body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus .item.action.selected > .titles .parameter.swizzled,):
6481 (.tree-outline:matches(:focus, .force-focus) .item.action.selected:not(.initial-state, .invalid) > .icon): Deleted.
6482 (body:not(.window-inactive, .window-docked-inactive) .tree-outline:matches(:focus, .force-focus) .item.action.selected > .titles .parameter.swizzled,): Deleted.
6483
6484 * UserInterface/Views/ScriptDetailsTimelineView.css:
6485 (.tree-outline:focus .item.selected .alternate-subtitle):
6486 (.tree-outline:matches(:focus, .force-focus) .item.selected .alternate-subtitle): Deleted.
6487
6488 * UserInterface/Views/ShaderProgramTreeElement.css:
6489 (.tree-outline:focus .item.shader-program.selected .status > img):
6490 (.tree-outline:matches(:focus, .force-focus) .item.shader-program.selected .status > img): Deleted.
6491
6492 * UserInterface/Views/ThreadTreeElement.css:
6493 (.tree-outline:focus > .item.thread.selected .status-button.resume):
6494 (.tree-outline:matches(:focus, .force-focus) > .item.thread.selected .status-button.resume): Deleted.
6495
6496 * UserInterface/Views/TimelineRecordBar.css:
6497 (:focus .selected .timeline-record-bar > .segment):
6498 (:focus .selected .timeline-record-bar > .segment.inactive):
6499 (body[dir=ltr] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
6500 (body[dir=rtl] :focus .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)):
6501 (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment): Deleted.
6502 (:matches(:focus, .force-focus) .selected .timeline-record-bar > .segment.inactive): Deleted.
6503 (body[dir=ltr] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
6504 (body[dir=rtl] :matches(:focus, .force-focus) .selected .timeline-record-bar.has-inactive-segment > .segment:not(.inactive)): Deleted.
6505
6506 * UserInterface/Views/TreeElementStatusButton.css:
6507 (:focus .item.selected > .status > .status-button):
6508 (:matches(:focus, .force-focus) .item.selected > .status > .status-button): Deleted.
6509
6510 * UserInterface/Views/TreeOutline.css:
6511 (.tree-outline:focus .item.selected .disclosure-button):
6512 (.tree-outline:focus .item.selected.expanded .disclosure-button):
6513 (.tree-outline:focus .item.selected):
6514 (.tree-outline:focus .item.selected .subtitle):
6515 (.tree-outline:not(.large):focus .item.selected .status .indeterminate-progress-spinner):
6516 (.tree-outline:matches(:focus, .force-focus) .item.selected .disclosure-button): Deleted.
6517 (.tree-outline:matches(:focus, .force-focus) .item.selected.expanded .disclosure-button): Deleted.
6518 (.tree-outline:matches(:focus, .force-focus) .item.selected): Deleted.
6519 (.tree-outline:matches(:focus, .force-focus) .item.selected .subtitle): Deleted.
6520 (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner): Deleted.
6521
drousso@apple.com01f92562018-10-11 19:26:27 +000065222018-10-11 Devin Rousso <drousso@apple.com>
6523
6524 Web Inspector: detail view is not re-shown after sorting the Network table
6525 https://bugs.webkit.org/show_bug.cgi?id=190330
6526 <rdar://problem/45089607>
6527
6528 Reviewed by Matt Baker.
6529
6530 * UserInterface/Views/NetworkTableContentView.js:
6531 (WI.NetworkTableContentView.prototype._restoreSelectedRow):
6532
drousso@apple.comd44c4f52018-10-10 18:01:25 +000065332018-10-10 Devin Rousso <drousso@apple.com>
6534
drousso@apple.comb591eb82018-10-11 04:13:17 +00006535 Web Inspector: create special Network waterfall for media events
6536 https://bugs.webkit.org/show_bug.cgi?id=189773
6537 <rdar://problem/44626605>
6538
6539 Reviewed by Joseph Pecoraro.
6540
6541 * Localizations/en.lproj/localizedStrings.js:
6542 * UserInterface/Main.html:
6543 * UserInterface/Base/Utilities.js:
6544
6545 * UserInterface/Protocol/DOMObserver.js:
6546 (WI.DOMObserver.prototype.didFireEvent): Added.
6547 * UserInterface/Controllers/DOMManager.js:
6548 (WI.DOMManager.prototype.didFireEvent): Added.
6549 * UserInterface/Models/DOMNode.js:
6550 (WI.DOMNode):
6551 (WI.DOMNode.prototype.get domEvents): Added.
6552 (WI.DOMNode.prototype.didFireEvent): Added.
6553 (WI.DOMNode.prototype._addDOMEvent): Added.
6554
6555 * UserInterface/Views/NetworkTableContentView.js:
6556 (WI.NetworkTableContentView):
6557 (WI.NetworkTableContentView.prototype.shown):
6558 (WI.NetworkTableContentView.prototype.hidden):
6559 (WI.NetworkTableContentView.prototype.closed):
6560 (WI.NetworkTableContentView.prototype.reset):
6561 (WI.NetworkTableContentView.prototype.showRepresentedObject):
6562 (WI.NetworkTableContentView.prototype.networkDetailViewClose): Added.
6563 (WI.NetworkTableContentView.prototype.tableSortChanged):
6564 (WI.NetworkTableContentView.prototype.tableSelectionDidChange):
6565 (WI.NetworkTableContentView.prototype._populateNameCell):
6566 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.positionByStartOffset): Added.
6567 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.setWidthForDuration): Added.
6568 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.createDOMEventLine): Added.
6569 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
6570 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
6571 (WI.NetworkTableContentView.prototype._processPendingEntries):
6572 (WI.NetworkTableContentView.prototype._rowIndexForRepresentedObject): Added.
6573 (WI.NetworkTableContentView.prototype._updateEntryForResource):
6574 (WI.NetworkTableContentView.prototype._hideDetailView): Added.
6575 (WI.NetworkTableContentView.prototype._showDetailView): Added.
6576 (WI.NetworkTableContentView.prototype._positionDetailView): Added.
6577 (WI.NetworkTableContentView.prototype._resourceTransferSizeDidChange):
6578 (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode):
6579 (WI.NetworkTableContentView.prototype._handleNodeDidFireEvent): Added.
6580 (WI.NetworkTableContentView.prototype._updateFilteredEntries):
6581 (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
6582 (WI.NetworkTableContentView.prototype._urlFilterDidChange):
6583 (WI.NetworkTableContentView.prototype._restoreSelectedRow):
6584 (WI.NetworkTableContentView.prototype._waterfallPopoverContent): Added.
6585 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResourceEntry): Added.
6586 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForNodeEntry): Added.
6587 (WI.NetworkTableContentView.prototype._handleResourceEntryMousedownWaterfall): Added.
6588 (WI.NetworkTableContentView.prototype._handleNodeEntryMousedownWaterfall): Added.
6589 (WI.NetworkTableContentView.prototype._handleMousedownWaterfall): Added.
6590 (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose): Deleted.
6591 (WI.NetworkTableContentView.prototype._rowIndexForResource): Deleted.
6592 (WI.NetworkTableContentView.prototype._hideResourceDetailView): Deleted.
6593 (WI.NetworkTableContentView.prototype._showResourceDetailView): Deleted.
6594 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource): Deleted.
6595 * UserInterface/Views/NetworkTableContentView.css:
6596 (.content-view.network .network-table): Added.
6597 (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-event): Added.
6598 (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity): Added.
6599 (.network-table :not(.header) .cell.waterfall .waterfall-container > .dom-activity.playing): Added.
6600
6601 * UserInterface/Views/NetworkDOMNodeDetailView.js: Added.
6602 (WI.NetworkDOMNodeDetailView):
6603 (WI.NetworkDOMNodeDetailView.prototype.initialLayout):
6604 (WI.NetworkDOMNodeDetailView.prototype.showContentViewForIdentifier):
6605
6606 * UserInterface/Views/NetworkResourceDetailView.css:
6607 (.content-view.resource-details):
6608 (.network-resource-detail): Deleted.
6609 (.network-resource-detail .navigation-bar): Deleted.
6610 (.network-resource-detail .item.close > .glyph): Deleted.
6611 (.network-resource-detail .item.close > .glyph:hover): Deleted.
6612 (.network-resource-detail .item.close > .glyph:active): Deleted.
6613 (.network .network-resource-detail .navigation-bar .item.radio.button.text-only): Deleted.
6614 (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected): Deleted.
6615 (.network-resource-detail > .content-browser): Deleted.
6616 (@media (prefers-dark-interface)): Deleted.
6617 * UserInterface/Views/NetworkResourceDetailView.js:
6618 (WI.NetworkResourceDetailView):
6619 (WI.NetworkResourceDetailView.prototype.shown):
6620 (WI.NetworkResourceDetailView.prototype.headersContentViewGoToRequestData):
6621 (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToHeaders):
6622 (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToRequestBody):
6623 (WI.NetworkResourceDetailView.prototype.sizesContentViewGoToResponseBody):
6624 (WI.NetworkResourceDetailView.prototype.initialLayout):
6625 (WI.NetworkResourceDetailView.prototype.showContentViewForIdentifier):
6626 (WI.NetworkResourceDetailView.prototype.get resource): Deleted.
6627 (WI.NetworkResourceDetailView.prototype.hidden): Deleted.
6628 (WI.NetworkResourceDetailView.prototype.dispose): Deleted.
6629 (WI.NetworkResourceDetailView.prototype.willShowWithCookie): Deleted.
6630 (WI.NetworkResourceDetailView.prototype.initialLayout): Deleted.
6631 (WI.NetworkResourceDetailView.prototype._showPreferredContentView): Deleted.
6632 (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem): Deleted.
6633 (WI.NetworkResourceDetailView.prototype._navigationItemSelected): Deleted.
6634 (WI.NetworkResourceDetailView.prototype._handleCloseButton): Deleted.
6635
6636 * UserInterface/Views/NetworkDetailView.js: Added.
6637 (WI.NetworkDetailView):
6638 (WI.NetworkDetailView.prototype.get representedObject):
6639 (WI.NetworkDetailView.prototype.shown):
6640 (WI.NetworkDetailView.prototype.hidden):
6641 (WI.NetworkDetailView.prototype.dispose):
6642 (WI.NetworkDetailView.prototype.willShowWithCookie):
6643 (WI.NetworkDetailView.prototype.initialLayout):
6644 (WI.NetworkDetailView.prototype.createDetailNavigationItem):
6645 (WI.NetworkDetailView.prototype.detailNavigationItemForIdentifier):
6646 (WI.NetworkDetailView.prototype.showContentViewForIdentifier):
6647 (WI.NetworkDetailView.prototype._showPreferredContentView):
6648 (WI.NetworkDetailView.prototype._navigationItemSelected):
6649 (WI.NetworkDetailView.prototype._handleCloseButton):
6650 * UserInterface/Views/NetworkDetailView.css: Added.
6651 (.network-detail):
6652 (.network-detail .navigation-bar):
6653 (.network-detail .item.close > .glyph):
6654 (.network-detail .item.close > .glyph:hover):
6655 (.network-detail .item.close > .glyph:active):
6656 (.network .network-detail .navigation-bar .item.radio.button.text-only):
6657 (.network .network-detail .navigation-bar .item.radio.button.text-only.selected):
6658 (.network-detail > .content-browser):
6659 (@media (prefers-dark-interface)):
6660 Create base class for detail views shown in the Network tab.
6661
6662 * UserInterface/Views/DOMNodeEventsContentView.js: Added.
6663 (WI.DOMNodeEventsContentView):
6664 (WI.DOMNodeEventsContentView.prototype.initialLayout):
6665 (WI.DOMNodeEventsContentView.prototype.closed):
6666 (WI.DOMNodeEventsContentView.prototype._handleDOMNodeDidFireEvent):
6667 * UserInterface/Views/DOMNodeEventsContentView.css: Added.
6668 (.dom-node-details.dom-events):
6669
6670 * UserInterface/Views/DOMEventsBreakdownView.js: Added.
6671 (WI.DOMEventsBreakdownView):
6672 (WI.DOMEventsBreakdownView.prototype.addEvent):
6673 (WI.DOMEventsBreakdownView.prototype.initialLayout):
6674 (WI.DOMEventsBreakdownView.prototype._populateTable.percentOfTotalTime):
6675 (WI.DOMEventsBreakdownView.prototype._populateTable):
6676 * UserInterface/Views/DOMEventsBreakdownView.css: Added.
6677 (.waterfall-popover-content .dom-events-breakdown):
6678 (.dom-events-breakdown):
6679 (.dom-events-breakdown table):
6680 (.dom-events-breakdown tr > :matches(th, td)):
6681 (.dom-events-breakdown tbody > tr):
6682 (.dom-events-breakdown .graph):
6683 (.dom-events-breakdown .graph > :matches(.point, .area)):
6684 (.dom-events-breakdown .graph > .point):
6685 (.dom-events-breakdown .time):
6686
6687 * UserInterface/Views/ResourceTimingBreakdownView.css:
6688 (.resource-timing-breakdown > table > tr.header:not(.total-row) > td): Added.
6689 (.popover.waterfall-popover): Deleted.
6690
66912018-10-10 Devin Rousso <drousso@apple.com>
6692
drousso@apple.com36489392018-10-10 22:41:25 +00006693 Web Inspector: REGRESSION(r236853): Uncaught Exception: undefined is not an object (evaluating 'entry.resource')
6694 https://bugs.webkit.org/show_bug.cgi?id=190442
6695
6696 Reviewed by Joseph Pecoraro.
6697
6698 * UserInterface/Views/NetworkTableContentView.js:
6699 (WI.NetworkTableContentView.prototype.reset):
6700 It's unnecessary to deselect rows in the `WI.Table` when we're about to remove them.
6701
67022018-10-10 Devin Rousso <drousso@apple.com>
6703
drousso@apple.com3df5ab82018-10-10 20:52:12 +00006704 Web Inspector: REGRESSION: selection in network table is lost when new entries are added
6705 https://bugs.webkit.org/show_bug.cgi?id=190362
6706
6707 Reviewed by Matt Baker.
6708
6709 The `_selectedRows` list is cleared each time `reloadData` is called, meaning that
6710 `WI.Table` expects its "owner" to restore the selection (since it doesn't know how). As a
6711 result, `WI.NetworkTableContentView` needs to call `selectRow` _after_ `reloadData` is
6712 called, not before.
6713
6714 * UserInterface/Views/NetworkTableContentView.js:
6715 (WI.NetworkTableContentView.prototype.tableSortChanged):
6716 (WI.NetworkTableContentView.prototype._populateNameCell):
6717 (WI.NetworkTableContentView.prototype._processPendingEntries):
6718 (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
6719 (WI.NetworkTableContentView.prototype._updateSort): Added.
6720 (WI.NetworkTableContentView.prototype._updateFilteredEntries):
6721 (WI.NetworkTableContentView.prototype._reloadTable): Added.
6722 (WI.NetworkTableContentView.prototype._resetFilters):
6723 (WI.NetworkTableContentView.prototype._typeFilterScopeBarSelectionChanged):
6724 (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
6725 (WI.NetworkTableContentView.prototype._urlFilterDidChange):
6726 (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries): Deleted.
6727
6728 * UserInterface/Views/Table.js:
6729 (WI.Table.prototype.reloadData):
6730 Ensure that the `_selectedRowIndex` is also reset.
6731
67322018-10-10 Devin Rousso <drousso@apple.com>
6733
drousso@apple.com644cfac2018-10-10 18:34:49 +00006734 Web Inspector: notify the frontend when a canvas has started recording via console.record
6735 https://bugs.webkit.org/show_bug.cgi?id=190306
6736
6737 Reviewed by Brian Burg.
6738
6739 * UserInterface/Protocol/CanvasObserver.js:
6740 (WI.CanvasObserver.prototype.recordingStarted): Added.
6741
6742 * UserInterface/Protocol/CanvasManager.js:
6743 (WI.CanvasManager.prototype.recordingStarted): Added.
6744
6745 * UserInterface/Models/Canvas.js:
6746 (WI.Canvas.prototype.startRecording):
6747 (WI.Canvas.prototype.recordingStarted): Added.
6748 (WI.Canvas.prototype.recordingFinished):
6749
67502018-10-10 Devin Rousso <drousso@apple.com>
6751
drousso@apple.comd44c4f52018-10-10 18:01:25 +00006752 Web Inspector: indent all network entries when "Group by Node" is checked
6753 https://bugs.webkit.org/show_bug.cgi?id=190388
6754
6755 Reviewed by Timothy Hatcher.
6756
6757 * UserInterface/Views/NetworkTableContentView.js:
6758 (WI.NetworkTableContentView.prototype._populateNameCell):
6759 (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange):
6760
6761 * UserInterface/Views/NetworkTableContentView.css:
6762 (.network-table.grouped .data-container .cell.name): Added.
6763 (.network-table.grouped .data-container .cell:not(.parent).name): Added.
6764 (.network-table.grouped .data-container .cell.child.name): Added.
6765 (.network-table .cell.grouped-by-node.name): Deleted.
6766 (body[dir=ltr] .network-table .cell.grouped-by-node.name): Deleted.
6767 (body[dir=rtl] .network-table .cell.grouped-by-node.name): Deleted.
6768 Apply a padding to all nodes when the `WI.Table` is grouped.
6769
drousso@apple.coma4a2ee32018-10-09 19:04:18 +000067702018-10-09 Devin Rousso <drousso@apple.com>
6771
drousso@apple.com3f5bc8d2018-10-10 02:49:52 +00006772 Web Inspector: show redirect requests in Network and Timelines tabs
6773 https://bugs.webkit.org/show_bug.cgi?id=150005
6774 <rdar://problem/5378164>
6775
6776 Reviewed by Joseph Pecoraro.
6777
6778 * Localizations/en.lproj/localizedStrings.js:
6779 * UserInterface/Views/Variables.css:
6780 * UserInterface/Main.html:
6781 * UserInterface/Test.html:
6782
6783 * UserInterface/Controllers/NetworkManager.js:
6784 (WI.NetworkManager.prototype.resourceRequestWillBeSent):
6785
6786 * UserInterface/Models/Resource.js:
6787 (WI.Resource):
6788 (WI.Resource.prototype.get redirects): Added.
6789 (WI.Resource.prototype.get lastRedirectReceivedTimestamp):
6790 (WI.Resource.prototype.updateForRedirectResponse):
6791 Save each redirect in an array instead of just remembering the last timestamp.
6792
6793 * UserInterface/Models/ResourceTimingData.js:
6794 (WI.ResourceTimingData):
6795 (WI.ResourceTimingData.fromPayload.offsetToTimestamp):
6796 (WI.ResourceTimingData.fromPayload):
6797 (WI.ResourceTimingData.prototype.get redirectStart): Added.
6798 (WI.ResourceTimingData.prototype.get redirectEnd): Added.
6799 (WI.ResourceTimingData.prototype.get fetchStart): Added.
6800 Add missing fields for `Network.types.ResourceTiming`.
6801
6802 * UserInterface/Models/Redirect.js: Added.
6803 (WI.Redirect):
6804 (WI.Redirect.prototype.get url):
6805 (WI.Redirect.prototype.get requestMethod):
6806 (WI.Redirect.prototype.get requestHeaders):
6807 (WI.Redirect.prototype.get responseStatusCode):
6808 (WI.Redirect.prototype.get responseStatusText):
6809 (WI.Redirect.prototype.get responseHeaders):
6810 (WI.Redirect.prototype.get timestamp):
6811 (WI.Redirect.prototype.get urlComponents):
6812
6813 * UserInterface/Views/ResourceHeadersContentView.js:
6814 (WI.ResourceHeadersContentView):
6815 (WI.ResourceHeadersContentView.prototype.initialLayout):
6816 (WI.ResourceHeadersContentView.prototype.layout):
6817 (WI.ResourceHeadersContentView.prototype._refreshRedirectHeadersSections): Added.
6818 (WI.ResourceHeadersContentView.prototype._resourceRequestHeadersDidChange):
6819 * UserInterface/Views/ResourceHeadersContentView.css:
6820 (body[dir] .resource-headers > section.summary > .details): Added.
6821 (body[dir] .resource-headers > section:matches(.redirect, .headers) > .details): Added.
6822 (.resource-headers .details .key):
6823 (.resource-headers .summary .key):
6824 (body[dir] .resource-headers > section > .details): Deleted.
6825 (body[dir] .resource-headers > section.headers > .details): Deleted.
6826 (.resource-headers .value): Deleted.
6827 Add a request/response header section for each redirect.
6828
6829 * UserInterface/Views/NetworkTableContentView.js:
6830 (WI.NetworkTableContentView.prototype._populateWaterfallGraph.appendBlock):
6831 (WI.NetworkTableContentView.prototype._populateWaterfallGraph):
6832 (WI.NetworkTableContentView.prototype._checkURLFilterAgainstResource):
6833 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
6834 * UserInterface/Views/NetworkTableContentView.css:
6835 (.waterfall .block.redirect): Added.
6836 (.waterfall .block.queue):
6837 * UserInterface/Views/ResourceTimelineDataGridNode.js:
6838 (WI.ResourceTimelineDataGridNode.prototype._mouseoverRecordBar):
6839 * UserInterface/Views/ResourceTimingBreakdownView.js:
6840 (WI.ResourceTimingBreakdownView.prototype.initialLayout):
6841 Add timeline/waterfall entries for total redirect time.
6842
68432018-10-09 Devin Rousso <drousso@apple.com>
6844
drousso@apple.come9090592018-10-09 22:31:55 +00006845 Web Inspector: Canvas Tab: grayed out Record button in navigator is nearly invisible
6846 https://bugs.webkit.org/show_bug.cgi?id=190365
6847 <rdar://problem/45097739>
6848
6849 Reviewed by Brian Burg.
6850
6851 * UserInterface/Views/CanvasSidebarPanel.css:
6852 (@media (prefers-dark-interface)): Added.
6853 (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled): Added.
6854
68552018-10-09 Devin Rousso <drousso@apple.com>
6856
drousso@apple.coma4a2ee32018-10-09 19:04:18 +00006857 Web Inspector: REGRESSION: fix canvas test failures after r236952 and r236954
6858 https://bugs.webkit.org/show_bug.cgi?id=190403
6859
6860 Reviewed by Joseph Pecoraro.
6861
6862 * UserInterface/Controllers/CanvasManager.js:
6863 (WI.CanvasManager.prototype._removeCanvas):
6864 Clear the `shaderProgramCollection` when a `WI.Canvas` is removed so that a remove event is
6865 fired for each `WI.ShaderProgram`.
6866
justin_fan@apple.com947003f2018-10-09 01:37:30 +000068672018-10-08 Justin Fan <justin_fan@apple.com>
6868
6869 WebGPU: Rename old WebGPU prototype to WebMetal
6870 https://bugs.webkit.org/show_bug.cgi?id=190325
6871 <rdar://problem/44990443>
6872
6873 Reviewed by Dean Jackson.
6874
6875 Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.
6876 For WebInspector, add WebMetal to valid enums for canvas types.
6877
6878 * UserInterface/Models/Canvas.js:
6879 (WI.Canvas.fromPayload):
6880 (WI.Canvas.displayNameForContextType):
6881
drousso@apple.comb5626cf2018-10-08 17:15:19 +000068822018-10-08 Devin Rousso <drousso@apple.com>
6883
drousso@apple.com0de9a8b2018-10-09 00:19:40 +00006884 Web Inspector: Dark Mode: canvas recording glyph is black on gray
6885 https://bugs.webkit.org/show_bug.cgi?id=190367
6886 <rdar://problem/45099304>
6887
6888 Reviewed by Joseph Pecoraro.
6889
6890 * UserInterface/Views/CanvasOverviewContentView.css:
6891 (.content-view.canvas-overview .content-view.canvas > footer .view-recording): Added.
6892 (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
6893
68942018-10-08 Devin Rousso <drousso@apple.com>
6895
drousso@apple.com9ba2f602018-10-09 00:14:52 +00006896 Web Inspector: allow multiple canvases to be recorded at the same time
6897 https://bugs.webkit.org/show_bug.cgi?id=190305
6898
6899 Reviewed by Brian Burg.
6900
6901 Moved the logic for maintaining whether a canvas is actively recording from
6902 `WI.CanvasManager` to `WI.Canvas`, meaning that each canvas can now record independently of
6903 every other canvas in the page. If multiple recordings are all finished simultaneously, only
6904 show the first one to be recieved by the frontend.
6905
6906 * UserInterface/Controllers/CanvasManager.js:
6907 (WI.CanvasManager):
6908 (WI.CanvasManager.prototype.recordingProgress):
6909 (WI.CanvasManager.prototype.recordingFinished):
6910 (WI.CanvasManager.prototype.programCreated):
6911 (WI.CanvasManager.prototype.programDeleted):
6912 (WI.CanvasManager.prototype._removeCanvas):
6913 (WI.CanvasManager.prototype._mainResourceDidChange):
6914 (WI.CanvasManager.prototype.get recordingCanvas): Deleted.
6915 (WI.CanvasManager.prototype.startRecording): Deleted.
6916 (WI.CanvasManager.prototype.stopRecording): Deleted.
6917 (WI.CanvasManager.prototype._dispatchShaderProgramRemoved): Deleted.
6918
6919 * UserInterface/Models/Canvas.js:
6920 (WI.Canvas.prototype.get recordingFrameCount): Added.
6921 (WI.Canvas.prototype.get recordingBufferUsed): Added.
6922 (WI.Canvas.prototype.get recordingActive): Added.
6923 (WI.Canvas.prototype.get isRecording): Deleted.
6924 (WI.Canvas.prototype.startRecording): Added.
6925 (WI.Canvas.prototype.stopRecording): Added.
6926 (WI.Canvas.prototype.recordingProgress): Added.
6927 (WI.Canvas.prototype.recordingFinished): Added.
6928
6929 * UserInterface/Views/CanvasTabContentView.js:
6930 (WI.CanvasTabContentView.prototype.attached):
6931 (WI.CanvasTabContentView.prototype.detached):
6932 (WI.CanvasTabContentView.prototype._recordingImportedOrStopped):
6933 (WI.CanvasTabContentView.prototype._handleSpace):
6934 (WI.CanvasTabContentView):
6935
6936 * UserInterface/Views/CanvasOverviewContentView.css:
6937 (.content-view.canvas-overview .content-view.canvas.recording-active): Added.
6938 (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
6939 (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .title): Added.
6940 (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
6941 (.content-view.canvas-overview .content-view.canvas.recording-active > header > .navigation-bar > .item): Added.
6942 (.content-view.canvas-overview .content-view.canvas:matches(:hover, .recording-active) > header > .navigation-bar): Added.
6943 (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop.disabled): Added.
6944 (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Added.
6945 (.content-view.canvas-overview .content-view.canvas:not(.recording-active) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Added.
6946 (.content-view.canvas-overview .content-view.canvas.recording-active > .progress-vie): Added.
6947 (.content-view.canvas-overview .content-view.canvas.recording-active > .preview): Added.
6948 (.content-view.canvas-overview .content-view.canvas.recording-active): Added.
6949 (.content-view.canvas-overview .content-view.canvas.recording-active > header): Added.
6950 (.content-view.canvas-overview .content-view.canvas.recording-active > header > .titles > .subtitle): Added.
6951 (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
6952 (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
6953 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .title): Deleted.
6954 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.
6955 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .navigation-bar > .item): Deleted.
6956 (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar): Deleted.
6957 (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop.disabled): Deleted.
6958 (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):hover): Deleted.
6959 (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop:not(.disabled):active): Deleted.
6960 (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-vie): Deleted.
6961 (.content-view.canvas-overview .content-view.canvas.is-recording > .preview): Deleted.
6962 (.content-view.canvas-overview .content-view.canvas.is-recording): Deleted.
6963 (.content-view.canvas-overview .content-view.canvas.is-recording > header): Deleted.
6964 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle): Deleted.
6965
6966 * UserInterface/Views/CanvasContentView.js:
6967 (WI.CanvasContentView.prototype.attached):
6968 (WI.CanvasContentView.prototype.detached):
6969 (WI.CanvasContentView.prototype._toggleRecording):
6970 (WI.CanvasContentView.prototype._recordingProgress):
6971 (WI.CanvasContentView.prototype._recordingStopped):
6972 (WI.CanvasContentView.prototype._shaderProgramAdded):
6973 (WI.CanvasContentView.prototype._shaderProgramRemoved):
6974 (WI.CanvasContentView.prototype._updateRecordNavigationItem):
6975 (WI.CanvasContentView.prototype._updateProgressView):
6976
6977 * UserInterface/Views/CanvasSidebarPanel.js:
6978 (WI.CanvasSidebarPanel):
6979 (WI.CanvasSidebarPanel.prototype.set canvas):
6980 (WI.CanvasSidebarPanel.prototype._toggleRecording):
6981 (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
6982
6983 * UserInterface/Views/CanvasTreeElement.js:
6984 (WI.CanvasTreeElement):
6985 (WI.CanvasTreeElement.prototype._updateStatus):
6986
69872018-10-08 Devin Rousso <drousso@apple.com>
6988
drousso@apple.comd1c75cd2018-10-09 00:07:24 +00006989 Web Inspector: replace Range.svg icon
6990 https://bugs.webkit.org/show_bug.cgi?id=190372
6991
6992 Reviewed by Joseph Pecoraro.
6993
6994 * UserInterface/Images/Range.svg:
6995 * UserInterface/Images/RangeLarge.svg: Added.
6996
6997 * UserInterface/Models/Resource.js:
6998 (WI.Resource.classNameForResource): Added.
6999 Create a static function for specializing the `className` of `WI.Resource` objects.
7000
7001 * UserInterface/Views/NetworkTableContentView.js:
7002 (WI.NetworkTableContentView.prototype._populateNameCell):
7003
7004 * UserInterface/Views/ResourceTreeElement.js:
7005 (WI.ResourceTreeElement):
7006
7007 * UserInterface/Views/ResourceIcons.css:
7008 (.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):
7009 (.resource-icon.resource-type-range .icon):
7010 (.large .resource-icon.resource-type-range .icon): Added.
7011 Drive-by: added `.large` versions of `ping` and `beacon` icons for the
7012 `WI.OpenResourceDialog` elements.
7013
70142018-10-08 Devin Rousso <drousso@apple.com>
7015
drousso@apple.com21748ed2018-10-08 18:25:52 +00007016 Web Inspector: group media network entries by the node that triggered the request
7017 https://bugs.webkit.org/show_bug.cgi?id=189606
7018 <rdar://problem/44438527>
7019
7020 Reviewed by Brian Burg.
7021
7022 Introduces a `WI.NavigationItem` for changing whether network entries are grouped by the
7023 node that initiated the load (if applicable). When grouped by node, a tree-like layout of
7024 the table cells (including expand/collapse) is used for resources that share the same
7025 initiator node. The values for the node's cell are based on it's initated resources.
7026
7027 * Localizations/en.lproj/localizedStrings.js:
7028 * UserInterface/Base/Setting.js:
7029
7030 * UserInterface/Controllers/DOMManager.js:
7031 (WI.DOMManager):
7032 (WI.DOMManager.prototype._mainResourceDidChange): Added.
7033 Whenever the frame navigates, re-request the document so that `NetworkAgent` is able to send
7034 valid `nodeId` for each request's `initiatorNode`. This means that the document should
7035 always be available.
7036
7037 * UserInterface/Views/NetworkTableContentView.js:
7038 (WI.NetworkTableContentView):
7039 (WI.NetworkTableContentView.prototype.get filterNavigationItems):
7040 (WI.NetworkTableContentView.prototype.closed):
7041 (WI.NetworkTableContentView.prototype.reset):
7042 (WI.NetworkTableContentView.prototype.tableSortChanged):
7043 (WI.NetworkTableContentView.prototype.tableSelectedRowChanged):
7044 (WI.NetworkTableContentView.prototype.tablePopulateCell):
7045 (WI.NetworkTableContentView.prototype._populateNameCell.createIconElement): Added.
7046 (WI.NetworkTableContentView.prototype._populateNameCell):
7047 (WI.NetworkTableContentView.prototype._populateDomainCell.createIconAndText): Added.
7048 (WI.NetworkTableContentView.prototype._populateDomainCell):
7049 (WI.NetworkTableContentView.prototype._populateInitiatorCell):
7050 (WI.NetworkTableContentView.prototype._populateTransferSizeCell):
7051 (WI.NetworkTableContentView.prototype._generateSortComparator):
7052 (WI.NetworkTableContentView.prototype._processPendingEntries):
7053 (WI.NetworkTableContentView.prototype._updateEntryForResource.updateExistingEntry): Added.
7054 (WI.NetworkTableContentView.prototype._updateEntryForResource):
7055 (WI.NetworkTableContentView.prototype._insertResourceAndReloadTable):
7056 (WI.NetworkTableContentView.prototype._entryForDOMNode): Added.
7057 (WI.NetworkTableContentView.prototype._tryLinkResourceToDOMNode): Added.
7058 (WI.NetworkTableContentView.prototype._uniqueValuesForDOMNodeEntry): Added.
7059 (WI.NetworkTableContentView.prototype._updateFilteredEntries):
7060 (WI.NetworkTableContentView.prototype._handleGroupByDOMNodeCheckedDidChange): Added.
7061 * UserInterface/Views/NetworkTableContentView.css:
7062 (.network-table .cell.dom-node.name .icon): Added.
7063 (.network-table .cell.dom-node.name .disclosure): Added.
7064 (body[dir=rtl] .network-table .cell.dom-node.name .disclosure): Added.
7065 (.network-table:focus li.selected .cell.dom-node.name .disclosure): Added.
7066 (.network-table .cell.dom-node.name .disclosure.expanded): Added.
7067 (.network-table:focus li.selected .cell.node.name .disclosure.expanded): Added.
7068 (.network-table .cell.grouped-by-node.name): Added.
7069 (body[dir=ltr] .network-table .cell.grouped-by-node.name): Added.
7070 (body[dir=rtl] .network-table .cell.grouped-by-node.name): Added.
7071 (.network-table li:not(.selected) .cell:matches(.cache-type, .multiple)): Added.
7072 (.network-table li.selected .cell.domain > .lock): Added.
7073 (.network-table .cache-type): Deleted.
7074 When two resources are added that share the same `initiatorNode`, insert a node entry into
7075 the `WI.Table` before the first resource entry for that node (based on the current sort).
7076 This node entry is added after the resource entries are filtered, so they won't appear in
7077 the default entries list.
7078
7079 * UserInterface/Models/Resource.js:
7080 (WI.Resource):
7081 (WI.Resource.prototype.initiatorNode): Added.
7082 (WI.Resource.prototype.requestedByteRange): Added.
7083 * UserInterface/Controllers/NetworkManager.js:
7084 (WI.NetworkManager.prototype.resourceRequestWillBeSent):
7085 (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
7086 (WI.NetworkManager.prototype._initiatorNodeFromPayload): Added.
7087
7088 * UserInterface/Images/Range.svg: Added.
7089 * UserInterface/Views/ResourceIcons.css:
7090 (.resource-icon.resource-type-range .icon): Added.
7091
70922018-10-08 Devin Rousso <drousso@apple.com>
7093
drousso@apple.come3c64a52018-10-08 17:24:15 +00007094 Web Inspector: clicking initiator link in Network Tab table doesn't automatically switch to Preview section
7095 https://bugs.webkit.org/show_bug.cgi?id=190286
7096
7097 Reviewed by Brian Burg.
7098
7099 * UserInterface/Views/NetworkResourceDetailView.js:
7100 (WI.NetworkResourceDetailView.prototype.shown):
7101 (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
7102
71032018-10-08 Devin Rousso <drousso@apple.com>
7104
drousso@apple.comb7680c32018-10-08 17:17:21 +00007105 Web Inspector: be more specific as to what types of WI.Collection are allowed for the Resources tab
7106 https://bugs.webkit.org/show_bug.cgi?id=190304
7107
7108 Reviewed by Brian Burg.
7109
7110 * UserInterface/Base/Main.js:
7111 (WI.tabContentViewClassForRepresentedObject):
7112 * UserInterface/Views/ResourcesTabContentView.js:
7113 (WI.ResourcesTabContentView.prototype.canShowRepresentedObject):
7114
71152018-10-08 Devin Rousso <drousso@apple.com>
7116
drousso@apple.comb5626cf2018-10-08 17:15:19 +00007117 Web Inspector: Open Resource Dialog should show path to resource (to disambiguate resources with same name)
7118 https://bugs.webkit.org/show_bug.cgi?id=178153
7119 <rdar://problem/34925686>
7120
7121 Reviewed by Brian Burg.
7122
7123 * UserInterface/Views/OpenResourceDialog.js:
7124 (WI.OpenResourceDialog.prototype._populateResourceTreeOutline):
7125 * UserInterface/Views/OpenResourceDialog.css:
7126 (.open-resource-dialog .tree-outline.large .item .titles[data-path]): Added.
7127 (.open-resource-dialog .tree-outline.large .item .titles[data-path]::after): Added.
7128 (.open-resource-dialog .tree-outline.large .item .titles .title): Added.
7129 (.open-resource-dialog .tree-outline.large .item .titles .subtitle): Added.
7130 (.open-resource-dialog .tree-outline.large .item .titles): Deleted.
7131
drousso@apple.com23ddbe62018-10-05 21:12:48 +000071322018-10-05 Devin Rousso <drousso@apple.com>
7133
drousso@apple.com7b7625a2018-10-06 01:06:20 +00007134 Web Inspector: add WebVTT MIME/file type mappings to the frontend
7135 https://bugs.webkit.org/show_bug.cgi?id=190288
7136
7137 Reviewed by Brian Burg.
7138
7139 * UserInterface/Base/MIMETypeUtilities.js:
7140 (WI.mimeTypeForFileExtension):
7141 (WI.fileExtensionForMIMEType):
7142
7143 * UserInterface/Views/NetworkTableContentView.js:
7144 (WI.NetworkTableContentView.displayNameForResource):
7145 Also attempt to use the mime-type-to-extension when the `WI.Resource` is of type `Other`.
7146
71472018-10-05 Devin Rousso <drousso@apple.com>
7148
drousso@apple.com68eb1312018-10-06 00:20:54 +00007149 Web Inspector: refactor constructor of WI.Resource
7150 https://bugs.webkit.org/show_bug.cgi?id=190318
7151
7152 Reviewed by Joseph Pecoraro.
7153
7154 Reworked constructor of `WI.Resource` to use an optional object for any non-essential arguments.
7155
7156 Drive-by: moved some simple getters to the top of the class to save space.
7157
7158 * UserInterface/Models/Resource.js:
7159 (WI.Resource):
7160
7161 * UserInterface/Models/SourceMapResource.js:
7162 (WI.SourceMapResource):
7163
7164 * UserInterface/Models/WebSocketResource.js:
7165 (WI.WebSocketResource):
7166
7167 * UserInterface/Controllers/NetworkManager.js:
7168 (WI.NetworkManager.prototype.frameDidNavigate):
7169 (WI.NetworkManager.prototype.resourceRequestWillBeSent):
7170 (WI.NetworkManager.prototype.webSocketWillSendHandshakeRequest):
7171 (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
7172 (WI.NetworkManager.prototype.resourceRequestDidReceiveResponse):
7173 (WI.NetworkManager.prototype._addNewResourceToFrameOrTarget):
7174 (WI.NetworkManager.prototype._createFrame):
7175 (WI.NetworkManager.prototype._createResource):
7176
71772018-10-05 Devin Rousso <drousso@apple.com>
7178
drousso@apple.com23ddbe62018-10-05 21:12:48 +00007179 Web Inspector: use iframe's name attribute for FrameTreeElement
7180 https://bugs.webkit.org/show_bug.cgi?id=190275
7181
7182 Reviewed by Joseph Pecoraro.
7183
7184 * UserInterface/Views/FrameTreeElement.js:
7185 (WI.FrameTreeElement.prototype.get mainTitleText): Added.
7186
7187 * UserInterface/Views/ResourceTreeElement.js:
7188 (WI.ResourceTreeElement.prototype.get mainTitleText): Added.
7189 (WI.ResourceTreeElement.prototype._updateTitles):
7190 Provide a way for subclasses to override what is used for the `mainTitle`.
7191
7192 * UserInterface/Views/QuickConsole.js:
7193 (WI.QuickConsole.prototype._createExecutionContextPathComponentFromFrame):
7194 Update the execution context picker to match what `WI.FrameTreeElement`s show.
7195
mattbaker@apple.com511954f2018-10-04 21:54:14 +000071962018-10-04 Matt Baker <mattbaker@apple.com>
7197
mattbaker@apple.come2e32902018-10-05 04:04:10 +00007198 Web Inspector: REGRESSION (r236766): Storage tab no longer updates after main frame navigation
7199 https://bugs.webkit.org/show_bug.cgi?id=190298
7200
7201 Reviewed by Joseph Pecoraro.
7202
7203 Handle Cleared events from storage managers separately, so that successive
7204 events during page load does not cause the Storage tab to destroy newly
7205 created tree elements.
7206
7207 * UserInterface/Views/StorageSidebarPanel.js:
7208 (WI.StorageSidebarPanel):
7209 (WI.StorageSidebarPanel.prototype._closeContentViewForTreeElement):
7210 (WI.StorageSidebarPanel.prototype._domStorageCleared):
7211 (WI.StorageSidebarPanel.prototype._applicationCacheCleared):
7212 (WI.StorageSidebarPanel.prototype._indexedDatabaseCleared):
7213 (WI.StorageSidebarPanel.prototype._databaseCleared):
7214 (WI.StorageSidebarPanel.prototype._storageCleared): Deleted.
7215
72162018-10-04 Matt Baker <mattbaker@apple.com>
7217
mattbaker@apple.com511954f2018-10-04 21:54:14 +00007218 Web Inspector: Table should support multiple selection and Cmd-click behavior
7219 https://bugs.webkit.org/show_bug.cgi?id=189705
7220 <rdar://problem/44571170>
7221
7222 Reviewed by Devin Rousso.
7223
7224 Add multiple row selection to Table, with new methods for programmatic
7225 selection (deselectRow, deselectAll), and Command-click support for
7226 selecting/deselecting Table rows.
7227
7228 * UserInterface/Base/IndexSet.js: Added.
7229 (WI.IndexSet):
7230 (WI.IndexSet.prototype.get size):
7231 (WI.IndexSet.prototype.get firstIndex):
7232 (WI.IndexSet.prototype.get lastIndex):
7233 (WI.IndexSet.prototype.add):
7234 (WI.IndexSet.prototype.delete):
7235 (WI.IndexSet.prototype.has):
7236 (WI.IndexSet.prototype.clear):
7237 (WI.IndexSet.prototype.indexGreaterThan):
7238 (WI.IndexSet.prototype.indexLessThan):
7239 (WI.IndexSet.prototype.Symbol.iterator):
7240 (WI.IndexSet.prototype._indexClosestTo):
7241 (WI.IndexSet.prototype._validateIndex):
7242 Helper container for managing an ordered sequence of unique positive
7243 integers, with set semantics, backed by a sorted array. Used by Table,
7244 and eventually by TreeOutline.
7245
7246 * UserInterface/Main.html:
7247 * UserInterface/Test.html:
7248 * UserInterface/Test/Test.js:
7249 New files and stubs to make Table layout tests possible.
7250
7251 * UserInterface/Views/NetworkTableContentView.js:
7252 (WI.NetworkTableContentView.prototype.reset):
7253 (WI.NetworkTableContentView.prototype.showRepresentedObject):
7254 (WI.NetworkTableContentView.prototype.networkResourceDetailViewClose):
7255 (WI.NetworkTableContentView.prototype.tableSelectionDidChange):
7256 (WI.NetworkTableContentView.prototype._restoreSelectedRow):
7257 (WI.NetworkTableContentView.prototype.tableSelectedRowChanged): Deleted.
7258 Replace uses of `clearSelectedRow` with `deselectAll`, and updated
7259 selection changed delegate.
7260
7261 * UserInterface/Views/Table.css:
7262 (.table > .data-container > .data-list > li):
7263 (.table > .data-container > .data-list > li.selected):
7264 (@media (prefers-dark-interface)):
7265 (.table,): Deleted.
7266 Removed styles that are no longer needed after https://webkit.org/b/189766,
7267 and provide a visual separation between adjacent selected rows.
7268
7269 * UserInterface/Views/Table.js:
7270 (WI.Table):
7271 (WI.Table.prototype.get selectedRows):
7272 (WI.Table.prototype.get allowsMultipleSelection):
7273 (WI.Table.prototype.set allowsMultipleSelection):
7274 (WI.Table.prototype.reloadData):
7275 (WI.Table.prototype.selectRow):
7276 (WI.Table.prototype.deselectRow):
7277 (WI.Table.prototype.deselectAll):
7278 (WI.Table.prototype._getOrCreateRow):
7279 (WI.Table.prototype._handleMouseDown):
7280 (WI.Table.prototype._deselectAllAndSelect):
7281 (WI.Table.prototype._isRowSelected):
7282 (WI.Table.prototype._notifySelectionDidChange):
7283 (WI.Table.prototype.clearSelectedRow): Deleted.
7284 Table now tracks selected rows using an IndexSet. selectRow accepts an
7285 optional parameter, `extendSelection`, for adding rows to the selection.
7286 _selectedRowIndex is now used to track the most recently selected row.
7287 This will be the only selected row unless multiple selection is enabled,
7288 in which case it is the row that has the "focus", for purposes of selecting
7289 a new row using the up or down arrow keys.
7290
drousso@apple.come1d55862018-10-04 20:58:14 +000072912018-10-04 Devin Rousso <drousso@apple.com>
7292
7293 Web Inspector: REGRESSION(r236540): Uncaught Exception: TypeError: pauseReasonBreakpointTreeElement.removeStatusImage is not a function.
7294 https://bugs.webkit.org/show_bug.cgi?id=190230
7295
7296 Reviewed by Matt Baker.
7297
7298 * UserInterface/Views/DebuggerSidebarPanel.js:
7299 (WI.DebuggerSidebarPanel._removeBreakpoint):
7300 Leverage existing `status` getter/setter for creating/removing the breakpoint icon element.
7301
7302 * UserInterface/Views/BreakpointTreeElement.js:
7303 (WI.BreakpointTreeElement):
7304 (WI.BreakpointTreeElement.prototype.populateContextMenu):
7305 (WI.BreakpointTreeElement.prototype._updateStatus):
7306 (WI.BreakpointTreeElement.prototype.removeStatusImage): Deleted.
7307
7308 * UserInterface/Views/DOMBreakpointTreeElement.js:
7309 (WI.DOMBreakpointTreeElement):
7310 (WI.DOMBreakpointTreeElement.prototype.onattach):
7311 (WI.DOMBreakpointTreeElement.prototype.ondetach):
7312 (WI.DOMBreakpointTreeElement.prototype._updateStatus):
7313
7314 * UserInterface/Views/EventBreakpointTreeElement.js:
7315 (WI.EventBreakpointTreeElement):
7316 (WI.EventBreakpointTreeElement.prototype.onattach):
7317 (WI.EventBreakpointTreeElement.prototype.ondetach):
7318 (WI.EventBreakpointTreeElement.prototype._updateStatus):
7319
7320 * UserInterface/Views/XHRBreakpointTreeElement.js:
7321 (WI.XHRBreakpointTreeElement):
7322 (WI.XHRBreakpointTreeElement.prototype.onattach):
7323 (WI.XHRBreakpointTreeElement.prototype.ondetach):
7324 (WI.XHRBreakpointTreeElement.prototype._updateStatus):
7325
mitz@apple.com06365072018-10-04 20:36:56 +000073262018-10-04 Dan Bernstein <mitz@apple.com>
7327
7328 WebInspectorUI part of [Xcode] Update some build settings as recommended by Xcode 10
7329 https://bugs.webkit.org/show_bug.cgi?id=190250
7330
7331 Reviewed by Andy Estes.
7332
7333 * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_INFINITE_RECURSION,
7334 CLANG_WARN_SUSPICIOUS_MOVE, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS, and
7335 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.
7336
7337 * WebInspectorUI.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.
7338
drousso@apple.com038c7012018-10-04 20:03:50 +000073392018-10-04 Devin Rousso <drousso@apple.com>
7340
drousso@apple.comb8f699c2018-10-04 20:27:45 +00007341 Web Inspector: merge ProbeManager into DebuggerManager
7342 https://bugs.webkit.org/show_bug.cgi?id=190225
7343
7344 Reviewed by Joseph Pecoraro.
7345
7346 * UserInterface/Main.html:
7347 * UserInterface/Base/Main.js:
7348 (WI.loaded):
7349 * UserInterface/Test.html:
7350 * UserInterface/Test/Test.js:
7351 (WI.loaded):
7352
7353 * UserInterface/Controllers/DebuggerManager.js:
7354 (WI.DebuggerManager.prototype.get probeSets): Added.
7355 (WI.DebuggerManager.prototype.probeForIdentifier): Added.
7356 (WI.DebuggerManager.prototype.addBreakpoint):
7357 (WI.DebuggerManager.prototype.removeBreakpoint):
7358 (WI.DebuggerManager.prototype.didSampleProbe): Added.
7359 (WI.DebuggerManager.prototype._handleBreakpointActionsDidChange): Added.
7360 (WI.DebuggerManager.prototype._addProbesForBreakpoint): Added.
7361 (WI.DebuggerManager.prototype._removeProbesForBreakpoint): Added.
7362 (WI.DebuggerManager.prototype._updateProbesForBreakpoint): Added.
7363 (WI.DebuggerManager.prototype._probeSetForBreakpoint): Added.
7364 * UserInterface/Controllers/ProbeManager.js: Removed.
7365
7366 * UserInterface/Protocol/DebuggerObserver.js:
7367 (WI.DebuggerObserver.prototype.didSampleProbe):
7368
7369 * UserInterface/Controllers/TimelineManager.js:
7370 (WI.TimelineManager.prototype._processRecord):
7371
7372 * UserInterface/Views/BreakpointTreeElement.js:
7373 (WI.BreakpointTreeElement.prototype.onattach):
7374
7375 * UserInterface/Views/ProbeDetailsSidebarPanel.js:
7376 (WI.ProbeDetailsSidebarPanel.prototype.closed):
7377 (WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
7378
7379 * UserInterface/Views/TextResourceContentView.js:
7380 (WI.TextResourceContentView):
7381 (WI.TextResourceContentView.prototype.get supplementalRepresentedObjects):
7382 (WI.TextResourceContentView.prototype.closed):
7383
73842018-10-04 Devin Rousso <drousso@apple.com>
7385
drousso@apple.com06583182018-10-04 20:08:54 +00007386 Web Inspector: some files not listed in OpenResourceDialog
7387 https://bugs.webkit.org/show_bug.cgi?id=190272
7388
7389 Reviewed by Joseph Pecoraro.
7390
7391 * UserInterface/Controllers/ResourceQueryController.js:
7392 (WI.ResourceQueryController.prototype._findQueryMatches):
7393 Allow the `searchIndex` to go past the end of the `searchString` to allow for backtracking
7394 if the last character of `searchString` is not found in `query`.
7395
73962018-10-04 Devin Rousso <drousso@apple.com>
7397
drousso@apple.com038c7012018-10-04 20:03:50 +00007398 Web Inspector: REGRESSION(r236783): Uncaught Exception: Can't find variable: sourceMapURL
7399 https://bugs.webkit.org/show_bug.cgi?id=190276
7400
7401 Reviewed by Joseph Pecoraro.
7402
7403 * UserInterface/Controllers/NetworkManager.js:
7404 (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed):
7405
drousso@apple.comcd352af2018-10-03 01:49:05 +000074062018-10-02 Devin Rousso <drousso@apple.com>
7407
7408 Web Inspector: merge SourceMapManager into NetworkManager
7409 https://bugs.webkit.org/show_bug.cgi?id=190224
7410
7411 Reviewed by Joseph Pecoraro.
7412
7413 * UserInterface/Main.html:
7414 * UserInterface/Base/Main.js:
7415 (WI.loaded):
7416 * UserInterface/Test.html:
7417 * UserInterface/Test/Test.js:
7418 (WI.loaded):
7419
7420 * UserInterface/Controllers/NetworkManager.js:
7421 (WI.NetworkManager):
7422 (WI.NetworkManager.prototype.downloadSourceMap): Added.
7423 (WI.NetworkManager.prototype.resourceRequestWasServedFromMemoryCache):
7424 (WI.NetworkManager.prototype.resourceRequestDidFinishLoading):
7425 (WI.NetworkManager.prototype._createResource):
7426 (WI.NetworkManager.prototype._loadAndParseSourceMap): Added.
7427 (WI.NetworkManager.prototype._sourceMapLoadAndParseFailed): Added.
7428 (WI.NetworkManager.prototype._sourceMapLoadAndParseSucceeded): Added.
7429 (WI.NetworkManager.prototype._handleFrameMainResourceDidChange): Added.
7430 * UserInterface/Controllers/SourceMapManager.js: Removed.
7431
7432 * UserInterface/Models/Script.js:
7433 (WI.Script):
7434
7435 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
7436 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
7437
nvasilyev@apple.com978300b2018-10-03 00:29:42 +000074382018-10-02 Nikita Vasilyev <nvasilyev@apple.com>
7439
7440 Web Inspector: Styles: start editing property name/value on mouseup instead of mousedown
7441 https://bugs.webkit.org/show_bug.cgi?id=190114
7442 <rdar://problem/44891030>
7443
7444 Reviewed by Matt Baker.
7445
7446 This change only affects the experimental multiple properties selection.
7447
7448 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
7449 (WI.SpreadsheetCSSStyleDeclarationSection):
7450 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
7451 (.multiple-properties-selection .spreadsheet-style-declaration-editor :matches(.name, .value):not(.editing)):
7452 Without this code, the focus outline flickers on click (after mousedown but before mouseup event).
7453
7454 * UserInterface/Views/SpreadsheetTextField.js:
7455 (WI.SpreadsheetTextField):
7456 (WI.SpreadsheetTextField.prototype._handleMouseUp):
7457
drousso@apple.com0941a942018-10-02 08:00:37 +000074582018-10-02 Devin Rousso <drousso@apple.com>
7459
drousso@apple.comaaeb7472018-10-03 00:25:10 +00007460 Web Inspector: prevent layer events from firing until the layer information is re-requested
7461 https://bugs.webkit.org/show_bug.cgi?id=190159
7462
7463 Reviewed by Joseph Pecoraro.
7464
7465 * UserInterface/Controllers/LayerTreeManager.js:
7466 (WI.LayerTreeManager):
7467 (WI.LayerTreeManager.prototype.get supported):
7468 Remove `supported` member variable in favor of re-evaluating its value.
7469
7470 * UserInterface/Protocol/LayerTreeObserver.js:
7471 (WI.LayerTreeObserver.prototype.layerTreeDidChange):
7472
74732018-10-02 Devin Rousso <drousso@apple.com>
7474
drousso@apple.com28832dc2018-10-03 00:21:57 +00007475 Web Inspector: REGRESSION(r236766): WI.IssueManager no longer exists
7476 https://bugs.webkit.org/show_bug.cgi?id=190226
7477
7478 Reviewed by Joseph Pecoraro.
7479
7480 * UserInterface/Controllers/ConsoleManager.js:
7481 (WI.ConsoleManager.prototype.issuesForSourceCode):
7482
74832018-10-02 Devin Rousso <drousso@apple.com>
7484
drousso@apple.com01202012018-10-02 22:14:52 +00007485 Web Inspector: rename frontend managers to be more consistent with backend agents
7486 https://bugs.webkit.org/show_bug.cgi?id=190160
7487
7488 Reviewed by Joseph Pecoraro.
7489
7490 * UserInterface/Test.html:
7491 * UserInterface/Test/Test.js:
7492 * UserInterface/Main.html:
7493 * UserInterface/Base/Main.js:
7494 * UserInterface/Base/DOMUtilities.js:
7495 * UserInterface/Controllers/ApplicationCacheManager.js:
7496 * UserInterface/Controllers/CSSManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/CSSStyleManager.js.
7497 * UserInterface/Controllers/ConsoleManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/LogManager.js.
7498 * UserInterface/Controllers/DOMDebuggerManager.js:
7499 * UserInterface/Controllers/DOMManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/DOMTreeManager.js.
7500 * UserInterface/Controllers/DOMStorageManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/StorageManager.js.
7501 * UserInterface/Controllers/DashboardManager.js: Removed.
7502 * UserInterface/Controllers/DatabaseManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
7503 * UserInterface/Controllers/HARBuilder.js:
7504 * UserInterface/Controllers/IndexedDBManager.js: Copied from Source/WebInspectorUI/UserInterface/Controllers/DOMStorageManager.js.
7505 * UserInterface/Controllers/IssueManager.js: Removed.
7506 * UserInterface/Controllers/JavaScriptLogViewController.js:
7507 * UserInterface/Controllers/NetworkManager.js: Renamed from Source/WebInspectorUI/UserInterface/Controllers/FrameResourceManager.js.
7508 * UserInterface/Controllers/SourceMapManager.js:
7509 * UserInterface/Controllers/TimelineManager.js:
7510 * UserInterface/Debug/UncaughtExceptionReporter.js:
7511 * UserInterface/Models/CSSProperty.js:
7512 * UserInterface/Models/CSSSelector.js:
7513 * UserInterface/Models/CallFrame.js:
7514 * UserInterface/Models/Canvas.js:
7515 * UserInterface/Models/ConsoleMessage.js:
7516 * UserInterface/Models/DOMBreakpoint.js:
7517 * UserInterface/Models/DOMNode.js:
7518 * UserInterface/Models/DOMNodeStyles.js:
7519 * UserInterface/Models/DOMTree.js:
7520 * UserInterface/Models/DefaultDashboard.js:
7521 * UserInterface/Models/Script.js:
7522 * UserInterface/Models/ScriptTimelineRecord.js:
7523 * UserInterface/Models/SourceMapResource.js:
7524 * UserInterface/Models/TimelineRecording.js:
7525 * UserInterface/Protocol/CSSObserver.js:
7526 * UserInterface/Protocol/ConsoleObserver.js:
7527 * UserInterface/Protocol/DOMObserver.js:
7528 * UserInterface/Protocol/DOMStorageObserver.js:
7529 * UserInterface/Protocol/DatabaseObserver.js:
7530 * UserInterface/Protocol/InspectorFrontendAPI.js:
7531 * UserInterface/Protocol/InspectorObserver.js:
7532 * UserInterface/Protocol/MainTarget.js:
7533 * UserInterface/Protocol/NetworkObserver.js:
7534 * UserInterface/Protocol/PageObserver.js:
7535 * UserInterface/Protocol/RemoteObject.js:
7536 * UserInterface/Protocol/RuntimeObserver.js:
7537 * UserInterface/Protocol/WorkerTarget.js:
7538 * UserInterface/Views/BoxModelDetailsSectionRow.js:
7539 * UserInterface/Views/CanvasOverviewContentView.js:
7540 * UserInterface/Views/CanvasTreeElement.js:
7541 * UserInterface/Views/ContentView.js:
7542 * UserInterface/Views/ContextMenuUtilities.js:
7543 * UserInterface/Views/CookieStorageContentView.js:
7544 * UserInterface/Views/DOMDetailsSidebarPanel.js:
7545 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
7546 * UserInterface/Views/DOMNodeTreeElement.js:
7547 * UserInterface/Views/DOMTreeContentView.js:
7548 * UserInterface/Views/DOMTreeDataGrid.js:
7549 * UserInterface/Views/DOMTreeElement.js:
7550 * UserInterface/Views/DOMTreeElementPathComponent.js:
7551 * UserInterface/Views/DOMTreeOutline.js:
7552 * UserInterface/Views/DOMTreeUpdater.js:
7553 * UserInterface/Views/DebuggerSidebarPanel.js:
7554 * UserInterface/Views/ElementsTabContentView.js:
7555 * UserInterface/Views/EventBreakpointPopover.js:
7556 * UserInterface/Views/EventBreakpointTreeElement.js:
7557 * UserInterface/Views/EventListenerSectionGroup.js:
7558 * UserInterface/Views/FormattedValue.js:
7559 * UserInterface/Views/FrameTreeElement.js:
7560 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
7561 * UserInterface/Views/IndexedDatabaseObjectStoreContentView.js:
7562 * UserInterface/Views/LayerDetailsSidebarPanel.js:
7563 * UserInterface/Views/LayerTreeDataGridNode.js:
7564 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
7565 * UserInterface/Views/Layers3DContentView.js:
7566 * UserInterface/Views/LogContentView.js:
7567 * UserInterface/Views/NetworkTableContentView.js:
7568 * UserInterface/Views/ObjectTreeBaseTreeElement.js:
7569 * UserInterface/Views/ObjectTreeView.js:
7570 * UserInterface/Views/OpenResourceDialog.js:
7571 * UserInterface/Views/ResourceSidebarPanel.js:
7572 * UserInterface/Views/SearchSidebarPanel.js:
7573 * UserInterface/Views/SettingsTabContentView.js:
7574 * UserInterface/Views/SourceCodeTextEditor.js:
7575 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
7576 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
7577 * UserInterface/Views/StorageSidebarPanel.js:
7578 * UserInterface/Views/StyleDetailsPanel.js:
7579 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
7580 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
7581
75822018-10-02 Devin Rousso <drousso@apple.com>
7583
drousso@apple.com0941a942018-10-02 08:00:37 +00007584 Web Inspector: Canvas: replace constant numbers with their associated name on WebGL contexts
7585 https://bugs.webkit.org/show_bug.cgi?id=190026
7586
7587 Reviewed by Joseph Pecoraro.
7588
7589 * UserInterface/Models/RecordingAction.js:
7590 (WI.RecordingAction.constantNameForParameter): Added.
7591 (WI.RecordingAction.prototype.getColorParameters):
7592 (WI.RecordingAction.prototype.getImageParameters):
7593 Drive-by: add additional swatches to color/image arguments for WebGL actions.
7594
7595 * UserInterface/Views/CanvasSidebarPanel.js:
7596 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
7597 Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
7598
7599 * UserInterface/Views/RecordingActionTreeElement.js:
7600 (WI.RecordingActionTreeElement._generateDOM.createParameterElement):
7601 (WI.RecordingActionTreeElement._generateDOM):
7602 * UserInterface/Views/RecordingActionTreeElement.css:
7603 (.item.action > .titles .parameter.constant): Added.
7604
commit-queue@webkit.org787386f2018-10-02 06:59:46 +000076052018-10-01 Joseph Pecoraro <pecoraro@apple.com>
7606
7607 Web Inspector: Fix a typo for execution context identifier
7608 https://bugs.webkit.org/show_bug.cgi?id=190185
7609
7610 Reviewed by Matt Baker.
7611
7612 * UserInterface/Protocol/MainTarget.js:
7613 (WI.MainTarget):
7614 * UserInterface/Protocol/WorkerTarget.js:
7615 (WI.WorkerTarget):
7616
drousso@apple.comc35243c2018-10-02 02:27:11 +000076172018-10-01 Devin Rousso <drousso@apple.com>
7618
7619 Web Inspector: remove analyzer manager
7620 https://bugs.webkit.org/show_bug.cgi?id=190162
7621
7622 Reviewed by Joseph Pecoraro.
7623
7624 * UserInterface/Main.html:
7625 * UserInterface/Base/Main.js:
7626 (WI.loaded):
7627
7628 * UserInterface/Controllers/AnalyzerManager.js: Removed.
7629 * UserInterface/Models/AnalyzerMessage.js: Removed.
7630
7631 * Scripts/copy-user-interface-resources.pl:
7632 * UserInterface/External/ESLint/LICENSE: Removed.
7633 * UserInterface/External/ESLint/eslint.js: Removed.
7634
nvasilyev@apple.com83f109a2018-10-02 01:31:37 +000076352018-10-01 Nikita Vasilyev <nvasilyev@apple.com>
7636
nvasilyev@apple.comba20b1c2018-10-02 01:37:43 +00007637 Web Inspector: Styles: add an experimental setting for multi-property selection
7638 https://bugs.webkit.org/show_bug.cgi?id=190053
7639 <rdar://problem/44842787>
7640
7641 Reviewed by Matt Baker.
7642
7643 This patch only adds a setting. It doesn't change property selection behavior.
7644
7645 * Localizations/en.lproj/localizedStrings.js:
7646 * UserInterface/Base/Setting.js:
7647 * UserInterface/Views/SettingsTabContentView.js:
7648 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
7649
76502018-10-01 Nikita Vasilyev <nvasilyev@apple.com>
7651
nvasilyev@apple.com83f109a2018-10-02 01:31:37 +00007652 Web Inspector: Dark Mode: use the same CSS variables for dark and light modes
7653 https://bugs.webkit.org/show_bug.cgi?id=189766
7654 <rdar://problem/44619650>
7655
7656 Use --text-color and --background-color CSS variables for both dark and light modes.
7657
7658 Reviewed by Matt Baker.
7659
7660 * UserInterface/Views/BreakpointPopoverController.css:
7661 (.popover .edit-breakpoint-popover-content > label.toggle):
7662 Color of the label matches the color of the popover, no need to specify it.
7663
7664 (.edit-breakpoint-popover-condition):
7665 (@media (prefers-dark-interface)):
7666 (.popover .edit-breakpoint-popover-content > table > tr > th):
7667 * UserInterface/Views/CompletionSuggestionsView.css:
7668 (.completion-suggestions-container > .item):
7669 (@media (prefers-dark-interface)):
7670 (.completion-suggestions):
7671 * UserInterface/Views/ComputedStyleDetailsPanel.css:
7672 (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
7673 (.computed-style-properties .property:hover .go-to-arrow):
7674 (@media (prefers-dark-interface)): Deleted.
7675 (.computed-style-properties.details-section): Deleted.
7676 (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.
7677 * UserInterface/Views/DOMTreeOutline.css:
7678 (.tree-outline.dom):
7679 (@media (prefers-dark-interface)):
7680 * UserInterface/Views/DataGrid.css:
7681 (.data-grid th):
7682 (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
7683 (@media (prefers-dark-interface)):
7684 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
7685 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
7686 (@media (prefers-dark-interface)):
7687 (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
7688 * UserInterface/Views/InlineSwatch.css:
7689 (.inline-swatch):
7690 (.inline-swatch-variable-popover .CodeMirror pre):
7691 (@media (prefers-dark-interface)): Deleted.
7692 * UserInterface/Views/NetworkResourceDetailView.css:
7693 (.network-resource-detail):
7694 (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
7695 (@media (prefers-dark-interface)):
7696 (.resource-headers .value): Deleted.
7697 Move this rule to ResourceHeadersContentView.css.
7698
7699 * UserInterface/Views/ObjectPreviewView.css:
7700 (.object-preview):
7701 (@media (prefers-dark-interface)):
7702 (.object-preview .name):
7703 * UserInterface/Views/ObjectTreeView.css:
7704 (.object-tree):
7705 (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
7706 (@media (prefers-dark-interface)): Deleted.
7707 (.object-tree,): Deleted.
7708
7709 (.object-preview .name): Deleted.
7710 (.object-preview > .size): Deleted.
7711 Move these rules to ObjectPreviewView.css.
7712
7713 * UserInterface/Views/QuickConsole.css:
7714 (.quick-console):
7715 (@media (prefers-dark-interface)):
7716 * UserInterface/Views/ResourceHeadersContentView.css:
7717 (.resource-headers .value):
7718 (.resource-headers.showing-find-banner .search-highlight):
7719 (@media (prefers-dark-interface)): Deleted.
7720 * UserInterface/Views/ResourceTimingBreakdownView.css:
7721 (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
7722 (@media (prefers-dark-interface)):
7723 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
7724 (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
7725 (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
7726 (@media (prefers-dark-interface)):
7727 (.spreadsheet-style-declaration-editor .property.has-warning .warning):
7728 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
7729 (.spreadsheet-css-declaration .media-label):
7730 (.spreadsheet-css-declaration .selector:focus,):
7731 (@media (prefers-dark-interface)):
7732 (.spreadsheet-css-declaration .origin .go-to-link,):
7733 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
7734 (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover):
7735 (@media (prefers-dark-interface)):
7736 (.sidebar > .panel.details.css-style > .content > .rules .section-header):
7737 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
7738 (.cm-s-default,):
7739 (@media (prefers-dark-interface)):
7740 (.syntax-highlighted,): Deleted.
7741 * UserInterface/Views/Table.css:
7742 (.table):
7743 (.table > .header):
7744 * UserInterface/Views/TimelineOverview.css:
7745 (.timeline-overview > .navigation-bar.timelines):
7746 (@media (prefers-dark-interface)):
7747 * UserInterface/Views/TimelineRecordingContentView.css:
7748 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
7749 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
7750 (.content-view.timeline-recording > .content-browser .recording-progress > .status > .indeterminate-progress-spinner):
7751 (@media (prefers-dark-interface)): Deleted.
7752 * UserInterface/Views/Variables.css:
7753 (:root):
7754 (@media (prefers-dark-interface)):
7755 * UserInterface/Views/XHRBreakpointPopover.css:
7756 (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
7757 (@media (prefers-dark-interface)):
7758
aestes@apple.com7b544a82018-09-28 22:06:02 +000077592018-09-28 Andy Estes <aestes@apple.com>
7760
aestes@apple.com3e3bef42018-09-28 23:13:38 +00007761 REGRESSION (r236091): CSSKeywordCompletions.js has "checkout" instead of "check-out" as a value for -apple-pay-button-type
7762 https://bugs.webkit.org/show_bug.cgi?id=190096
7763
7764 Reviewed by Ryosuke Niwa.
7765
7766 I changed "checkout" to "check-out" in r235754, but it somehow got flipped back to "checkout" in r236091.
7767
7768 * UserInterface/Models/CSSKeywordCompletions.js:
7769
77702018-09-28 Andy Estes <aestes@apple.com>
7771
aestes@apple.com7b544a82018-09-28 22:06:02 +00007772 [Apple Pay] Remove the "in-store" button type
7773 https://bugs.webkit.org/show_bug.cgi?id=190079
7774
7775 Reviewed by Tim Horton.
7776
7777 * UserInterface/Models/CSSKeywordCompletions.js:
7778
drousso@apple.come3dfef52018-09-28 08:04:10 +000077792018-09-28 Devin Rousso <drousso@apple.com>
7780
7781 Web Inspector: image resources without content are still shown when the Images folder is selected
7782 https://bugs.webkit.org/show_bug.cgi?id=190072
7783
7784 Reviewed by Matt Baker.
7785
7786 * UserInterface/Views/ResourceContentView.js:
7787 (WI.ResourceContentView.prototype.showGenericNoContentMessage):
7788 Treat paths that result in a "Resource has no content" message as a "content error".
7789
drousso@apple.come74f81c2018-09-27 06:09:48 +000077902018-09-26 Devin Rousso <drousso@apple.com>
7791
drousso@apple.com035a11b2018-09-27 06:24:39 +00007792 Web Inspector: Hide DOM and XHR breakpoint sections when they are empty
7793 https://bugs.webkit.org/show_bug.cgi?id=182406
7794 <rdar://problem/37131512>
7795
7796 Reviewed by Joseph Pecoraro.
7797
7798 Combine all breakpoint sections (e.g. DOM, XHR, and Event) into the main "Breakpoints"
7799 section, including all the various "+" buttons for creating different types of breakpoints.
7800
7801 Global breakpoints (except "All Exceptions" and "Uncaught Exceptions") are now deletable,
7802 and can be re-added via the "+" button of the "Breakpoints" section. Deletable global
7803 breakpoints (e.g. "Assertion Failures" and "All Requests") are able to remain visible while
7804 disabled, and will only be hidden when the user specifically deletes them.
7805
7806 * Localizations/en.lproj/localizedStrings.js:
7807 * UserInterface/Base/Setting.js:
7808 * UserInterface/Main.html:
7809
7810 * UserInterface/Controllers/DOMBreakpointTreeController.js: Removed.
7811 * UserInterface/Controllers/EventBreakpointTreeController.js: Removed.
7812 * UserInterface/Controllers/XHRBreakpointTreeController.js: Removed.
7813
7814 * UserInterface/Controllers/DebuggerManager.js:
7815 (WI.DebuggerManager.prototype.get uncaughtExceptionsBreakpoint): Added.
7816 (WI.DebuggerManager.prototype.get assertionFailuresBreakpoint): Added.
7817 (WI.DebuggerManager.prototype.isBreakpointRemovable):
7818 (WI.DebuggerManager.prototype.isBreakpointSpecial): Added.
7819 (WI.DebuggerManager.prototype.isBreakpointEditable):
7820 (WI.DebuggerManager.prototype.addBreakpoint):
7821 (WI.DebuggerManager.prototype.removeBreakpoint):
7822 (WI.DebuggerManager.prototype.initializeTarget):
7823 (WI.DebuggerManager.prototype._breakpointDisabledStateDidChange):
7824 (WI.DebuggerManager.prototype._updateBreakOnExceptionsState):
7825 (WI.DebuggerManager.prototype.get allUncaughtExceptionsBreakpoint): Deleted.
7826 (WI.DebuggerManager.prototype.get assertionsBreakpoint): Deleted.
7827 * UserInterface/Controllers/DOMDebuggerManager.js:
7828 (WI.DOMDebuggerManager.prototype.isBreakpointSpecial): Added.
7829 (WI.DOMDebuggerManager.prototype.addDOMBreakpoint):
7830 (WI.DOMDebuggerManager.prototype.removeDOMBreakpoint):
7831 (WI.DOMDebuggerManager.prototype.addEventBreakpoint):
7832 (WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
7833 (WI.DOMDebuggerManager.prototype.addXHRBreakpoint):
7834 (WI.DOMDebuggerManager.prototype.removeXHRBreakpoint):
7835 (WI.DOMDebuggerManager.prototype.isBreakpointRemovable): Deleted.
7836 Always fire add/remove events, including for special breakpoints, so that any listeners will
7837 be able to adjust accordingly. Even though special breakpoints don't get stored in the lists
7838 held by each manager, we are still able to enable/disable them, and that should be reported.
7839
7840 * UserInterface/Views/DebuggerSidebarPanel.js:
7841 (WI.DebuggerSidebarPanel):
7842 (WI.DebuggerSidebarPanel.prototype.closed):
7843 (WI.DebuggerSidebarPanel.prototype.saveStateToCookie):
7844 (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie.revealAndSelect):
7845 (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
7846 (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
7847 (WI.DebuggerSidebarPanel.prototype._addBreakpoint):
7848 (WI.DebuggerSidebarPanel.prototype._removeBreakpoint): Added.
7849 (WI.DebuggerSidebarPanel.prototype._addTreeElementForSourceCodeToTreeOutline):
7850 (WI.DebuggerSidebarPanel.prototype._mainResourceDidChange):
7851 (WI.DebuggerSidebarPanel.prototype._breakpointRemoved):
7852 (WI.DebuggerSidebarPanel.prototype._removeDebuggerTreeElement):
7853 (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
7854 (WI.DebuggerSidebarPanel.prototype._addTreeElement.comparator): Added.
7855 (WI.DebuggerSidebarPanel.prototype._addTreeElement): Added.
7856 (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
7857 (WI.DebuggerSidebarPanel.prototype._domBreakpointResolvedStateDidChange): Added.
7858 (WI.DebuggerSidebarPanel.prototype._handleBreakpointElementAddedOrRemoved): Added.
7859 (WI.DebuggerSidebarPanel.prototype._handleCreateBreakpointClicked): Added.
7860 (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements.isSpecialBreakpoint): Deleted.
7861 (WI.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements): Deleted.
7862 (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved): Deleted.
7863 (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Deleted.
7864 (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Deleted.
7865 (WI.DebuggerSidebarPanel.prototype._addXHRBreakpointButtonClicked): Deleted.
7866 * UserInterface/Views/DebuggerSidebarPanel.css:
7867 (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .titles): Deleted.
7868 (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node .icon): Deleted.
7869 (.sidebar > .panel.navigation.debugger .details-section.dom-breakpoints .item.dom-node:not(:hover, .selected) .status .go-to-arrow): Deleted.
7870 (.sidebar > .panel.navigation.debugger .details-section.xhr-breakpoints .item.breakpoint .subtitle): Deleted.
7871 Unify the logic for adding/removing breakpoints of all types.
7872
7873 * UserInterface/Views/BreakpointTreeElement.js:
7874 (WI.BreakpointTreeElement):
7875 (WI.BreakpointTreeElement.prototype.ondelete):
7876 * UserInterface/Views/DOMBreakpointTreeElement.js:
7877 (WI.DOMBreakpointTreeElement):
7878 (WI.DOMBreakpointTreeElement.prototype.ondelete):
7879 * UserInterface/Views/DOMNodeTreeElement.js:
7880 (WI.DOMNodeTreeElement):
7881 (WI.DOMNodeTreeElement.prototype.ondelete):
7882 (WI.DOMNodeTreeElement.prototype.populateContextMenu):
7883 * UserInterface/Views/EventBreakpointTreeElement.js:
7884 (WI.EventBreakpointTreeElement):
7885 (WI.EventBreakpointTreeElement.prototype.ondelete):
7886 (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
7887 * UserInterface/Views/XHRBreakpointTreeElement.js:
7888 (WI.XHRBreakpointTreeElement):
7889 (WI.XHRBreakpointTreeElement.prototype.ondelete):
7890 (WI.XHRBreakpointTreeElement.prototype.populateContextMenu):
7891 * UserInterface/Views/XHRBreakpointTreeElement.css: Added.
7892 (.breakpoint.xhr .subtitle):
7893 Add/remove checks for whether the associated breakpoint can be deleted.
7894
7895 * UserInterface/Views/DOMNodeTreeElement.css: Added.
7896 (.tree-outline .item.dom-node .titles):
7897 (.tree-outline .item.dom-node .icon):
7898 (.tree-outline .item.dom-node:not(:hover, .selected) .status .go-to-arrow):
7899
7900 * UserInterface/Views/ContextMenuUtilities.js:
7901 (WI.appendContextMenuItemsForDOMNode):
7902 (WI.appendContextMenuItemsForDOMNodeBreakpoints): Added.
7903 * UserInterface/Views/DOMTreeElement.js:
7904 (WI.DOMTreeElement.prototype._statusImageContextmenu):
7905
7906 * UserInterface/Views/XHRBreakpointPopover.js:
7907 (WI.XHRBreakpointPopover):
7908 (WI.XHRBreakpointPopover.prototype.get breakpoint): Added.
7909 (WI.XHRBreakpointPopover.prototype.show):
7910 (WI.XHRBreakpointPopover.prototype.dismiss): Added.
7911 (WI.XHRBreakpointPopover.prototype._createEditor):
7912 (WI.XHRBreakpointPopover.prototype._updateEditor):
7913 (WI.XHRBreakpointPopover.prototype.get result): Deleted.
7914 (WI.XHRBreakpointPopover.prototype.get type): Deleted.
7915 (WI.XHRBreakpointPopover.prototype.get value): Deleted.
7916 Drive-by: remove the erroneous usage of `WI.InputPopover.Result`.
7917
79182018-09-26 Devin Rousso <drousso@apple.com>
7919
drousso@apple.come74f81c2018-09-27 06:09:48 +00007920 Web Inspector: determine hasVisibleEffect for each RecordingAction as it's processed
7921 https://bugs.webkit.org/show_bug.cgi?id=189860
7922
7923 Reviewed by Joseph Pecoraro.
7924
7925 * Localizations/en.lproj/localizedStrings.js:
7926 * UserInterface/Base/Setting.js:
7927 * UserInterface/Base/Utilities.js:
7928
7929 * UserInterface/Models/RecordingAction.js:
7930 (WI.RecordingAction.prototype.process.getContent):
7931 (WI.RecordingAction.prototype.process):
7932
7933 * UserInterface/Views/RecordingActionTreeElement.js:
7934 (WI.RecordingActionTreeElement.prototype.onattach):
7935
7936 * UserInterface/Views/SettingsTabContentView.js:
7937 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
7938
7939 * UserInterface/Views/RecordingContentView.js:
7940 (WI.RecordingContentView.prototype._updateImageGrid):
7941 Drive-by: don't attempt to show the image grid if we haven't called initialized yet.
7942
7943 * UserInterface/Views/CanvasSidebarPanel.js:
7944 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
7945 Drive-by: ensure that the `WI.RecordingContentView` is showing before applying the action.
7946
nvasilyev@apple.com3f004852018-09-26 23:23:53 +000079472018-09-26 Nikita Vasilyev <nvasilyev@apple.com>
7948
7949 Web Inspector: Dark Mode: new watch expression popover has light background
7950 https://bugs.webkit.org/show_bug.cgi?id=190013
7951 <rdar://problem/44810000>
7952
7953 Reviewed by Matt Baker.
7954
7955 Make the background dark to match the CodeMirror editor background.
7956
7957 * UserInterface/Views/ScopeChainDetailsSidebarPanel.css:
7958 (@media (prefers-dark-interface)):
7959 (.watch-expression-editor):
7960
nvasilyev@apple.coma9170722018-09-21 21:04:56 +000079612018-09-21 Nikita Vasilyev <nvasilyev@apple.com>
7962
7963 REGRESSION(r236237): Web Inspector: DarkMode: white background in Elements and Timelines
7964 https://bugs.webkit.org/show_bug.cgi?id=189852
7965
7966 Reviewed by Joseph Pecoraro.
7967
7968 * UserInterface/Views/Main.css:
7969 (body):
7970 (#main):
7971
bburg@apple.comd26b1ff2018-09-21 20:32:09 +000079722018-09-21 Brian Burg <bburg@apple.com>
7973
7974 Web Inspector: remove unnecessary WI.Platform.version checks
7975 https://bugs.webkit.org/show_bug.cgi?id=189845
7976
7977 Reviewed by Matt Baker.
7978
7979 * UserInterface/Base/Platform.js:
7980 (osVersionMatch): Add name for macOS Mojave.
7981
7982 * UserInterface/Base/Main.js:
7983 * UserInterface/Views/Popover.js:
7984 Remove old logic that's no longer needed.
7985
drousso@apple.com1084e452018-09-21 18:56:00 +000079862018-09-21 Devin Rousso <drousso@apple.com>
7987
7988 Web Inspector: remove setting for Sources tab
7989 https://bugs.webkit.org/show_bug.cgi?id=189817
7990
7991 Reviewed by Joseph Pecoraro.
7992
7993 * Localizations/en.lproj/localizedStrings.js:
7994 * UserInterface/Base/Setting.js:
7995 * UserInterface/Main.html:
7996 * UserInterface/Base/Main.js:
7997 (WI.contentLoaded):
7998 (WI._debuggerDidPause):
7999 (WI.isShowingSourcesTab): Removed.
8000 (WI.showSourcesTab): Removed.
8001
8002 * UserInterface/Views/SourcesSidebarPanel.css: Removed.
8003 * UserInterface/Views/SourcesSidebarPanel.js: Removed.
8004 * UserInterface/Views/SourcesTabContentView.js: Removed.
8005
8006 * UserInterface/Views/ContextMenuUtilities.js:
8007 (WI.appendContextMenuItemsForURL):
8008
8009 * UserInterface/Views/SettingsTabContentView.js:
8010 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
8011
8012 * UserInterface/Views/SourceCodeTextEditor.js:
8013 (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
8014
simon.fraser@apple.com223f6f82018-09-21 18:42:25 +000080152018-09-20 Simon Fraser <simon.fraser@apple.com>
8016
8017 Make "overflow: overlay" a synonym for "overflow: auto"
8018 https://bugs.webkit.org/show_bug.cgi?id=189811
8019
8020 Reviewed by Zalan Bujtas.
8021
8022 Remove "overlay" from the overflow values.
8023
8024 * UserInterface/Models/CSSKeywordCompletions.js:
8025 * UserInterface/Views/VisualStyleDetailsPanel.js:
8026 (WI.VisualStyleDetailsPanel.prototype._populateDisplaySection):
8027
drousso@apple.com9baf2de2018-09-21 18:30:10 +000080282018-09-21 Devin Rousso <drousso@apple.com>
8029
drousso@apple.comb66a41d2018-09-21 18:33:29 +00008030 Web Inspector: hide Accessibility Audit Tab setting
8031 https://bugs.webkit.org/show_bug.cgi?id=189816
8032
8033 Reviewed by Joseph Pecoraro.
8034
8035 Considering that this tab doesn't exist, there's no reason to have a setting/UI for it.
8036
8037 * UserInterface/Base/Setting.js:
8038 * UserInterface/Views/SettingsTabContentView.js:
8039 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
8040
80412018-09-21 Devin Rousso <drousso@apple.com>
8042
drousso@apple.com9baf2de2018-09-21 18:30:10 +00008043 Web Inspector: remove Legacy Style Editor
8044 https://bugs.webkit.org/show_bug.cgi?id=189808
8045
8046 Reviewed by Joseph Pecoraro.
8047
8048 The Legacy Style Editor has been hidden behind an "experimental" setting for almost a year.
8049 It's time that we remove it, especially since the new Style Editor is at a similar, if not
8050 more advanced, state.
8051
8052 * .eslintrc:
8053 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
8054 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
8055 * Localizations/en.lproj/localizedStrings.js:
8056 * Tools/PrettyPrinting/index.html:
8057 * UserInterface/Main.html:
8058 * UserInterface/Test.html:
8059 * UserInterface/Base/Setting.js:
8060
8061 * UserInterface/Base/TextUtilities.js: Removed.
8062 * UserInterface/Base/Utilities.js:
8063
8064 * UserInterface/Views/RulesStyleDetailsPanel.css: Removed.
8065 * UserInterface/Views/RulesStyleDetailsPanel.js: Removed.
8066 * UserInterface/Views/CSSStyleDeclarationSection.css: Removed.
8067 * UserInterface/Views/CSSStyleDeclarationSection.js: Removed.
8068 * UserInterface/Views/CSSStyleDeclarationTextEditor.css: Removed.
8069 * UserInterface/Views/CSSStyleDeclarationTextEditor.js: Removed.
8070
8071 * UserInterface/Models/CSSProperty.js:
8072 (WI.CSSProperty.prototype.get text):
8073 (WI.CSSProperty.prototype.get synthesizedText): Deleted.
8074
8075 * UserInterface/Models/CSSStyleDeclaration.js:
8076 (WI.CSSStyleDeclaration):
8077 (WI.CSSStyleDeclaration.prototype.set text):
8078 (WI.CSSStyleDeclaration.prototype.resetText): Deleted.
8079 (WI.CSSStyleDeclaration.prototype.get modified): Deleted.
8080 (WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Deleted.
8081 (WI.CSSStyleDeclaration.prototype.isInspectorRule): Deleted.
8082
8083 * UserInterface/Models/CSSSelector.js:
8084 (WI.CSSSelector.prototype.isGreaterThan): Deleted.
8085
8086 * UserInterface/Models/CSSRule.js:
8087 (WI.CSSRule.prototype.update):
8088 (WI.CSSRule.prototype.get matchedSelectors): Deleted.
8089 (WI.CSSRule.prototype.get matchedSelectorText): Deleted.
8090 (WI.CSSRule.prototype.hasMatchedPseudoElementSelector): Deleted.
8091 (WI.CSSRule.prototype.get mediaText): Deleted.
8092 (WI.CSSRule.prototype.get mostSpecificSelector): Deleted.
8093 (WI.CSSRule.prototype.selectorIsGreater): Deleted.
8094 (WI.CSSRule.prototype._determineMostSpecificSelector): Deleted.
8095
8096 * UserInterface/Models/DOMNodeStyles.js:
8097 (WI.DOMNodeStyles.prototype.changeRule.changeCompleted): Deleted.
8098 (WI.DOMNodeStyles.prototype.changeRule.styleChanged): Deleted.
8099 (WI.DOMNodeStyles.prototype.changeRule.changeText): Deleted.
8100 (WI.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged): Deleted.
8101 (WI.DOMNodeStyles.prototype.changeRule): Deleted.
8102
8103 * UserInterface/Models/CSSCompletions.js:
8104 (WI.CSSCompletions.prototype.isValidPropertyName):
8105 (WI.CSSCompletions):
8106 (WI.CSSCompletions.prototype.keySet): Deleted.
8107 (WI.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Deleted.
8108 (WI.CSSCompletions.prototype.getClosestPropertyName): Deleted.
8109
8110 * UserInterface/Views/ComputedStyleDetailsPanel.js:
8111 (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): Deleted.
8112
8113 * UserInterface/Views/RulesStyleDetailsSidebarPanel.js:
8114 (WI.RulesStyleDetailsSidebarPanel):
8115
8116 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
8117 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
8118
8119 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
8120 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingRuleSelector): Added.
8121 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector): Deleted.
8122
8123 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
8124 (WI.SpreadsheetRulesStyleDetailsPanel):
8125 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
8126 (.sidebar > .panel.details.css-style .rules): Added.
8127 (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
8128 (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link): Added.
8129 (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
8130 (.sidebar > .panel.details.css-style > .content > .rules > .message-text-view): Added.
8131 (.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view): Added.
8132 (@media (prefers-dark-interface)):
8133 (.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
8134 (.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
8135 (.spreadsheet-style-panel .section-header): Deleted.
8136 (.spreadsheet-style-panel .section-header .node-link): Deleted.
8137 (.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
8138 (.spreadsheet-style-panel .section-header): Deleted.
8139 (.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
8140
8141 * UserInterface/Views/CodeMirrorAdditions.js:
8142 (extendedCSSRuleStartState): Removed.
8143 * UserInterface/Views/CodeMirrorFormatters.js:
8144 Remove "css-rule" CodeMirror mode.
8145
8146 * UserInterface/Views/CodeMirrorTextMarkers.js:
8147 (createCodeMirrorVariableTextMarkers): Deleted.
8148
8149 * UserInterface/Views/SettingsTabContentView.js:
8150 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
8151
commit-queue@webkit.org4f3ea9b2018-09-21 16:20:05 +000081522018-09-21 Mike Gorse <mgorse@suse.com>
8153
8154 Build tools should work when the /usr/bin/python is python3
8155 https://bugs.webkit.org/show_bug.cgi?id=156674
8156
8157 Reviewed by Michael Catanzaro.
8158
8159 * Scripts/copy-user-interface-resources.pl: Use $PYTHON if set
8160 in the environment.
8161
drousso@apple.com560dda42018-09-21 02:02:14 +000081622018-09-20 Devin Rousso <drousso@apple.com>
8163
drousso@apple.com9ff9def2018-09-21 02:04:57 +00008164 Web Inspector: remove Visual Style CSS details sidebar panel
8165 https://bugs.webkit.org/show_bug.cgi?id=189807
8166
8167 Reviewed by Joseph Pecoraro.
8168
8169 The Visual Style CSS details sidebar panel has been hidden behind an "experimental" setting
8170 for almost a year. It's time that we remove it.
8171
8172 * Localizations/en.lproj/localizedStrings.js:
8173 * UserInterface/Base/Setting.js:
8174 * UserInterface/Main.html:
8175
8176 * UserInterface/Views/ElementsTabContentView.js:
8177 (WI.ElementsTabContentView):
8178 * UserInterface/Views/SettingsTabContentView.js:
8179 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
8180
8181 * UserInterface/Images/AnimationPlayStatePaused.svg: Removed.
8182 * UserInterface/Images/AnimationPlayStateRunning.svg: Removed.
8183 * UserInterface/Images/ClearBoth.svg: Removed.
8184 * UserInterface/Images/ClearLeft.svg: Removed.
8185 * UserInterface/Images/ClearRight.svg: Removed.
8186 * UserInterface/Images/FloatLeft.svg: Removed.
8187 * UserInterface/Images/FloatRight.svg: Removed.
8188 * UserInterface/Images/FontStyleItalic.svg: Removed.
8189 * UserInterface/Images/FontStyleNormal.svg: Removed.
8190 * UserInterface/Images/ListStylePositionInside.svg: Removed.
8191 * UserInterface/Images/ListStylePositionOutside.svg: Removed.
8192 * UserInterface/Images/TextAlignCenter.svg: Removed.
8193 * UserInterface/Images/TextAlignJustify.svg: Removed.
8194 * UserInterface/Images/TextAlignLeft.svg: Removed.
8195 * UserInterface/Images/TextAlignRight.svg: Removed.
8196 * UserInterface/Images/TextDecorationLineThrough.svg: Removed.
8197 * UserInterface/Images/TextDecorationOverline.svg: Removed.
8198 * UserInterface/Images/TextDecorationUnderline.svg: Removed.
8199 * UserInterface/Images/TextTransformCapitalize.svg: Removed.
8200 * UserInterface/Images/TextTransformLowercase.svg: Removed.
8201 * UserInterface/Images/TextTransformUppercase.svg: Removed.
8202 * UserInterface/Images/VisualStyleNone.svg: Removed.
8203 * UserInterface/Images/VisualStylePropertyLinked.svg: Removed.
8204 * UserInterface/Images/VisualStylePropertyUnlinked.svg: Removed.
8205
8206 * UserInterface/Views/VisualStyleBackgroundPicker.css: Removed.
8207 * UserInterface/Views/VisualStyleBackgroundPicker.js: Removed.
8208 * UserInterface/Views/VisualStyleBasicInput.js: Removed.
8209 * UserInterface/Views/VisualStyleColorPicker.css: Removed.
8210 * UserInterface/Views/VisualStyleColorPicker.js: Removed.
8211 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Removed.
8212 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Removed.
8213 * UserInterface/Views/VisualStyleDetailsPanel.css: Removed.
8214 * UserInterface/Views/VisualStyleDetailsPanel.js: Removed.
8215 * UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Removed.
8216 * UserInterface/Views/VisualStyleFontFamilyListEditor.js: Removed.
8217 * UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Removed.
8218 * UserInterface/Views/VisualStyleKeywordCheckbox.css: Removed.
8219 * UserInterface/Views/VisualStyleKeywordCheckbox.js: Removed.
8220 * UserInterface/Views/VisualStyleKeywordIconList.css: Removed.
8221 * UserInterface/Views/VisualStyleKeywordIconList.js: Removed.
8222 * UserInterface/Views/VisualStyleKeywordPicker.js: Removed.
8223 * UserInterface/Views/VisualStyleNumberInputBox.css: Removed.
8224 * UserInterface/Views/VisualStyleNumberInputBox.js: Removed.
8225 * UserInterface/Views/VisualStylePropertyCombiner.js: Removed.
8226 * UserInterface/Views/VisualStylePropertyEditor.css: Removed.
8227 * UserInterface/Views/VisualStylePropertyEditor.js: Removed.
8228 * UserInterface/Views/VisualStylePropertyEditorLink.css: Removed.
8229 * UserInterface/Views/VisualStylePropertyEditorLink.js: Removed.
8230 * UserInterface/Views/VisualStylePropertyNameInput.js: Removed.
8231 * UserInterface/Views/VisualStyleRelativeNumberSlider.css: Removed.
8232 * UserInterface/Views/VisualStyleRelativeNumberSlider.js: Removed.
8233 * UserInterface/Views/VisualStyleSelectorSection.css: Removed.
8234 * UserInterface/Views/VisualStyleSelectorSection.js: Removed.
8235 * UserInterface/Views/VisualStyleSelectorTreeItem.css: Removed.
8236 * UserInterface/Views/VisualStyleSelectorTreeItem.js: Removed.
8237 * UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Removed.
8238 * UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Removed.
8239 * UserInterface/Views/VisualStyleTimingEditor.css: Removed.
8240 * UserInterface/Views/VisualStyleTimingEditor.js: Removed.
8241 * UserInterface/Views/VisualStyleURLInput.js: Removed.
8242 * UserInterface/Views/VisualStyleUnitSlider.css: Removed.
8243 * UserInterface/Views/VisualStyleUnitSlider.js: Removed.
8244
8245 * UserInterface/Controllers/VisualStyleCompletionsController.js: Removed.
8246
82472018-09-20 Devin Rousso <drousso@apple.com>
8248
drousso@apple.com560dda42018-09-21 02:02:14 +00008249 Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
8250 https://bugs.webkit.org/show_bug.cgi?id=183627
8251
8252 Reviewed by Joseph Pecoraro.
8253
8254 * UserInterface/Views/ComputedStyleDetailsPanel.js:
8255 (WI.ComputedStyleDetailsPanel):
8256 (WI.ComputedStyleDetailsPanel.prototype.refresh):
8257 (WI.ComputedStyleDetailsPanel.prototype.applyFilter):
8258 (WI.ComputedStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationEditorShowProperty):
8259 (WI.ComputedStyleDetailsPanel.prototype.initialLayout):
8260 (WI.ComputedStyleDetailsPanel.prototype.filterDidChange):
8261 (WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
8262 (WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
8263 (WI.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged):
8264 (WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
8265 (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty): Deleted.
8266 (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Deleted.
8267 Replace CSSStyleDeclarationTextEditor with SpreadsheetCSSStyleDeclarationEditor.
8268
8269 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
8270 (WI.SpreadsheetCSSStyleDeclarationEditor):
8271 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
8272 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
8273 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set showsImplicitProperties):
8274 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set alwaysShowPropertyNames):
8275 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set propertyVisibilityMode):
8276 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set hideFilterNonMatchingProperties):
8277 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set sortPropertiesByName): Added.
8278 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
8279 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
8280 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
8281 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyShowProperty):
8282 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
8283 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender): Deleted.
8284 Create setters for the "special" functionality required by the Computed panel and tie them
8285 into the logic that determines what properties are rendered.
8286
8287 * UserInterface/Views/SpreadsheetStyleProperty.js:
8288 (WI.SpreadsheetStyleProperty.prototype._update):
8289 Create go-to arrow if the property has a shorthand version or a source code location.
8290
8291 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
8292 (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
8293 Don't reapply the filter after refreshing, as the current panel will handle applying it.
8294
8295 * UserInterface/Views/ComputedStyleDetailsPanel.css:
8296 (.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
8297 (.computed-style-properties .property .go-to-arrow):
8298 (.computed-style-properties .property:hover .go-to-arrow):
8299 (.computed-style-properties.details-section): Deleted.
8300 (.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow): Deleted.
8301 (.details-section > .content > .group > .row .CodeMirror-code pre:hover .go-to-arrow): Deleted.
8302 (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.
8303 * UserInterface/Views/DetailsSection.css:
8304 (.details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
8305 Consolidate Computed panel styles to it's respective CSS file.
8306
8307 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
8308 (.spreadsheet-style-declaration-editor):
8309 (.spreadsheet-style-declaration-editor .property:matches(.implicit, .not-inherited) .content > *):
8310 (.spreadsheet-style-declaration-editor .property.not-inherited .content > *): Deleted.
8311 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
8312 (.spreadsheet-css-declaration):
8313 * UserInterface/Views/Variables.css:
8314 (:root):
8315 Move `css-declaration` padding variables so they can be used by SpreadsheetCSSStyleDeclarationEditor
8316 without a parent SpreadsheetCSSStyleDeclarationSection.
8317
8318 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
8319 (.style-spreadsheet .style-rule): Deleted.
8320 (.style-spreadsheet .selector-line): Deleted.
8321 (.style-spreadsheet .selector): Deleted.
8322 (.style-spreadsheet :matches(.selector .matched, .selector:focus)): Deleted.
8323 (.style-spreadsheet .name): Deleted.
8324 (.style-spreadsheet .value): Deleted.
8325 (.style-spreadsheet :matches(.selector, .name, .value)): Deleted.
8326 (.style-spreadsheet :matches(.selector, .name, .value):focus): Deleted.
8327 (.style-spreadsheet .selector-inline): Deleted.
8328 (.style-spreadsheet .property): Deleted.
8329 (.style-spreadsheet .property-disabled,): Deleted.
8330 (.style-spreadsheet .property-disabled :matches(.name, .value)): Deleted.
8331 (.style-spreadsheet .styles-source): Deleted.
8332 (.style-spreadsheet :matches(a, .node-link)): Deleted.
8333 (.style-spreadsheet :matches(a, .node-link):hover): Deleted.
8334 (.style-spreadsheet .declarations): Deleted.
8335 (.style-spreadsheet input[type="checkbox"]): Deleted.
8336 (.style-spreadsheet input[type="checkbox"]:not(:checked)): Deleted.
8337 (.style-spreadsheet .declarations:hover input[type="checkbox"]): Deleted.
8338 Drive-by fix: remove styles that don't apply to anything.
8339
nvasilyev@apple.com19f4ba22018-09-20 02:31:42 +000083402018-09-19 Nikita Vasilyev <nvasilyev@apple.com>
8341
8342 Web Inspector: move DarkMode.css rules into appropriate CSS files
8343 https://bugs.webkit.org/show_bug.cgi?id=189673
8344
8345 Reviewed by Matt Baker.
8346
8347 * UserInterface/Main.html:
8348 * UserInterface/Views/BezierEditor.css:
8349 (@media (prefers-dark-interface)):
8350 (.bezier-editor > .bezier-preview-timing):
8351 (.bezier-editor > .bezier-container .bezier-curve):
8352 (.bezier-editor > .bezier-container .linear-curve):
8353 (.bezier-editor > .bezier-preview):
8354 (.bezier-editor > .bezier-preview > div):
8355 (.bezier-editor > .bezier-container .control-handle):
8356 (.bezier-editor > .bezier-container .control-line):
8357 * UserInterface/Views/BreakpointActionView.css:
8358 (@media (prefers-dark-interface)):
8359 (.breakpoint-action-block-body):
8360 (.breakpoint-action-block-body > .description):
8361 (.breakpoint-action-append-button,):
8362 (.breakpoint-action-eval-editor):
8363 * UserInterface/Views/BreakpointPopoverController.css:
8364 (@media (prefers-dark-interface)):
8365 (.popover .edit-breakpoint-popover-content > label.toggle):
8366 (.popover .edit-breakpoint-popover-content > table > tr > th):
8367 (.edit-breakpoint-popover-condition):
8368 * UserInterface/Views/ButtonNavigationItem.css:
8369 (@media (prefers-dark-interface)):
8370 (.navigation-bar .item.button):
8371 * UserInterface/Views/ButtonToolbarItem.css:
8372 (@media (prefers-dark-interface)):
8373 (.toolbar .item.button):
8374 (.toolbar .item.button:not(.disabled):active):
8375 (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
8376 (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
8377 * UserInterface/Views/CallFrameView.css:
8378 (@media (prefers-dark-interface)):
8379 (.call-frame .subtitle,):
8380 (.call-frame:hover .subtitle .source-link,):
8381 (.call-frame .separator):
8382 * UserInterface/Views/CanvasContentView.css:
8383 (@media (prefers-dark-interface)):
8384 (.content-view.canvas:not(.tab)):
8385 * UserInterface/Views/CanvasOverviewContentView.css:
8386 (@media (prefers-dark-interface)):
8387 (.content-view.canvas-overview):
8388 (.content-view.canvas-overview .content-view.canvas):
8389 (.content-view.canvas-overview .content-view.canvas.is-recording):
8390 (.content-view.canvas-overview .content-view.canvas.is-recording > header):
8391 (.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
8392 (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
8393 (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
8394 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
8395 * UserInterface/Views/CanvasTabContentView.css:
8396 (@media (prefers-dark-interface)):
8397 (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
8398 (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon,):
8399 (.content-view.canvas > .preview > img,):
8400 * UserInterface/Views/CodeMirrorOverrides.css:
8401 (@media (prefers-dark-interface)):
8402 (.CodeMirror-cursor):
8403 (.CodeMirror .CodeMirror-gutters):
8404 (.cm-s-default .cm-link):
8405 (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
8406 * UserInterface/Views/CompletionSuggestionsView.css:
8407 (@media (prefers-dark-interface)):
8408 (.completion-suggestions):
8409 (.completion-suggestions-container > .item):
8410 * UserInterface/Views/ComputedStyleDetailsPanel.css:
8411 (@media (prefers-dark-interface)):
8412 (.computed-style-properties.details-section):
8413 (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
8414 * UserInterface/Views/ConsoleMessageView.css:
8415 (@media (prefers-dark-interface)):
8416 (.console-message .syntax-highlighted):
8417 (.console-warning-level .console-message-text):
8418 (.console-error-level .console-message-text):
8419 (.console-user-command > .console-message-text):
8420 (.console-message .repeat-count):
8421 * UserInterface/Views/ConsolePrompt.css:
8422 (@media (prefers-dark-interface)):
8423 (.console-prompt):
8424 * UserInterface/Views/DOMNodeDetailsSidebarPanel.css:
8425 (@media (prefers-dark-interface)):
8426 (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
8427 * UserInterface/Views/DOMTreeOutline.css:
8428 (@media (prefers-dark-interface)):
8429 (.tree-outline.dom):
8430 (.tree-outline.dom li.elements-drag-over .selection-area):
8431 (.tree-outline.dom li.selected .selection-area):
8432 (.tree-outline.dom:focus li.selected .selection-area):
8433 (.tree-outline.dom li.selected + ol.children.expanded):
8434 (.tree-outline.dom .shadow):
8435 (.tree-outline.dom li.parent.shadow + ol.children.expanded,):
8436 (.showing-find-banner .tree-outline.dom .search-highlight):
8437 * UserInterface/Views/DarkMode.css: Removed.
8438 * UserInterface/Views/DataGrid.css:
8439 (@media (prefers-dark-interface)):
8440 (.data-grid th):
8441 (.data-grid td .subtitle):
8442 (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
8443 (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
8444 (.data-grid tr.editable .cell-content > input):
8445 (.data-grid td.spanning):
8446 * UserInterface/Views/DebuggerDashboardView.css:
8447 (@media (prefers-dark-interface)):
8448 (.toolbar .dashboard.debugger):
8449 (.dashboard.debugger .navigation-bar .item.button > .glyph):
8450 (.dashboard.debugger > .location .function-name):
8451 (.dashboard.debugger > .location .go-to-link):
8452 (.dashboard.debugger > .divider):
8453 * UserInterface/Views/DefaultDashboardView.css:
8454 (@media (prefers-dark-interface)):
8455 (.toolbar .dashboard.default > .item > div):
8456 (.toolbar .dashboard.default > .item.enabled > div):
8457 (.toolbar .dashboard.default > .item.enabled:hover):
8458 (.toolbar .dashboard.default > .item.enabled:hover > div):
8459 (.toolbar .dashboard.default > .resourcesCount > img,):
8460 (body.latest-mac .toolbar .dashboard .item.button):
8461 (.dashboard-container .advance-arrow):
8462 * UserInterface/Views/DetailsSection.css:
8463 (@media (prefers-dark-interface)):
8464 (.details-section > .header):
8465 (.details-section > .header > label):
8466 (.details-section .details-section,):
8467 (.details-section .details-section:not(.collapsed) > .header):
8468 (.details-section > .content > .group > .row.simple > .label):
8469 (.details-section > .content > .group:nth-child(even)):
8470 (.details-section > .content > .group > .row:matches(.empty, .text)):
8471 * UserInterface/Views/DividerNavigationItem.css:
8472 (@media (prefers-dark-interface)):
8473 (.navigation-bar .item.divider):
8474 * UserInterface/Views/Editing.css:
8475 (@media (prefers-dark-interface)):
8476 (.editing):
8477 (.editing, .editing *):
8478 * UserInterface/Views/FindBanner.css:
8479 (@media (prefers-dark-interface)):
8480 (.find-banner > input[type="search"]):
8481 (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
8482 * UserInterface/Views/FontResourceContentView.css:
8483 (@media (prefers-dark-interface)):
8484 (.content-view.resource.font .preview > .line):
8485 (.content-view.resource.font .metric.top):
8486 (.content-view.resource.font .metric.baseline):
8487 (.content-view.resource.font .metric.middle):
8488 (.content-view.resource.font .metric.xheight):
8489 (.content-view.resource.font .metric.bottom):
8490 * UserInterface/Views/FormattedValue.css:
8491 (@media (prefers-dark-interface)):
8492 (.formatted-object,):
8493 (.formatted-null,):
8494 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:
8495 (@media (prefers-dark-interface)):
8496 (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
8497 (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
8498 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
8499 * UserInterface/Views/HoverMenu.css:
8500 (@media (prefers-dark-interface)):
8501 (.hover-menu > svg > :matches(path, rect)):
8502 * UserInterface/Views/ImageResourceContentView.css:
8503 (@media (prefers-dark-interface)):
8504 (.content-view.resource.image):
8505 * UserInterface/Views/InlineSwatch.css:
8506 (@media (prefers-dark-interface)):
8507 (.inline-swatch):
8508 * UserInterface/Views/LogContentView.css:
8509 (@media (prefers-dark-interface)):
8510 (.console-messages):
8511 (.console-item):
8512 (.console-messages:focus .console-item.selected):
8513 (.console-messages:focus .console-item.selected + .console-item):
8514 (.console-session:first-of-type .console-session-header):
8515 (.console-session:not(:first-of-type) .console-session-header):
8516 (.console-messages a):
8517 (.console-messages a:hover):
8518 (.console-messages:focus .console-item.selected::after):
8519 (.console-error-level):
8520 (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
8521 (.console-warning-level):
8522 (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
8523 (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
8524 (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
8525 * UserInterface/Views/Main.css:
8526 (#main):
8527 (@media (prefers-dark-interface)):
8528 (.go-to-arrow):
8529 (.resource-link,):
8530 (.expand-list-button):
8531 (:matches(img, canvas).show-grid):
8532 * UserInterface/Views/NetworkResourceDetailView.css:
8533 (@media (prefers-dark-interface)):
8534 (.network-resource-detail):
8535 (.network-resource-detail .item.close > .glyph):
8536 (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
8537 (.resource-headers .value):
8538 * UserInterface/Views/NetworkTableContentView.css:
8539 (@media (prefers-dark-interface)):
8540 (.network-table .cell.domain > .lock):
8541 * UserInterface/Views/NewTabContentView.css:
8542 (@media (prefers-dark-interface)):
8543 (.new-tab.tab.content-view):
8544 * UserInterface/Views/ObjectTreePropertyTreeElement.css:
8545 (@media (prefers-dark-interface)):
8546 (.object-tree-property .getter,):
8547 (.item.object-tree-property.prototype-property):
8548 (.object-tree-property.prototype-property:hover,):
8549 (.object-tree-property .value.error):
8550 * UserInterface/Views/ObjectTreeView.css:
8551 (@media (prefers-dark-interface)):
8552 (.object-tree,):
8553 (.object-preview .name):
8554 (.object-preview > .size):
8555 * UserInterface/Views/OpenResourceDialog.css:
8556 (@media (prefers-dark-interface)):
8557 (.open-resource-dialog):
8558 (.open-resource-dialog > .field > input):
8559 (.open-resource-dialog > .field > input::placeholder):
8560 (.open-resource-dialog > .tree-outline .item.selected):
8561 (.open-resource-dialog > .field::before):
8562 * UserInterface/Views/ProgressView.css:
8563 (@media (prefers-dark-interface)):
8564 (.progress-view > .titles > .title):
8565 (.progress-view > .titles > .subtitle):
8566 (.indeterminate-progress-spinner):
8567 * UserInterface/Views/QuickConsole.css:
8568 (@media (prefers-dark-interface)):
8569 (.quick-console):
8570 (.CodeMirror .jump-to-symbol-highlight,):
8571 (.quick-console.showing-log):
8572 * UserInterface/Views/RecordingActionTreeElement.css:
8573 (@media (prefers-dark-interface)):
8574 (.item.action:not(.initial-state)::before):
8575 (.tree-outline .item.action.visual:not(.selected, .invalid)):
8576 (.item.action:not(.initial-state) > .icon):
8577 (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
8578 * UserInterface/Views/RecordingContentView.css:
8579 (@media (prefers-dark-interface)):
8580 (.content-view:not(.tab).recording):
8581 (.content-view:not(.tab).recording > header > .slider-container):
8582 (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
8583 * UserInterface/Views/RecordingStateDetailsSidebarPanel.css:
8584 (@media (prefers-dark-interface)):
8585 (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
8586 * UserInterface/Views/ResourceHeadersContentView.css:
8587 (@media (prefers-dark-interface)):
8588 (.resource-headers .value):
8589 * UserInterface/Views/ResourceSizesContentView.css:
8590 (@media (prefers-dark-interface)):
8591 (.resource-sizes > .content .label):
8592 * UserInterface/Views/ResourceTimingBreakdownView.css:
8593 (@media (prefers-dark-interface)):
8594 (.popover.waterfall-popover):
8595 (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
8596 (.resource-timing-breakdown > table > tr > td.label,):
8597 (.resource-timing-breakdown > table hr):
8598 * UserInterface/Views/ScopeBar.css:
8599 (@media (prefers-dark-interface)):
8600 (.scope-bar > li):
8601 * UserInterface/Views/SearchBar.css:
8602 (@media (prefers-dark-interface)):
8603 (:matches(.search-bar, .filter-bar) > input[type="search"],):
8604 (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
8605 (:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
8606 * UserInterface/Views/SearchSidebarPanel.css:
8607 (@media all):
8608 * UserInterface/Views/SettingsTabContentView.css:
8609 (@media (prefers-dark-interface)):
8610 (.content-view.settings .navigation-bar):
8611 (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
8612 * UserInterface/Views/ShaderProgramContentView.css:
8613 (@media (prefers-dark-interface)):
8614 (.content-view.shader-program > .text-editor.shader):
8615 (.content-view.shader-program > .text-editor.shader > .type-title):
8616 * UserInterface/Views/ShaderProgramTreeElement.css:
8617 (@media (prefers-dark-interface)):
8618 (.item.shader-program .status > img):
8619 * UserInterface/Views/SourceCodeTextEditor.css:
8620 (@media (prefers-dark-interface)):
8621 (.source-code.text-editor > .CodeMirror .error):
8622 (.source-code.text-editor > .CodeMirror .warning):
8623 (.source-code.text-editor > .CodeMirror .issue-widget):
8624 (.source-code.text-editor > .CodeMirror .issue-widget.warning,):
8625 (.source-code.text-editor > .CodeMirror .issue-widget.error,):
8626 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
8627 (@media (prefers-dark-interface)):
8628 (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
8629 (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
8630 (.spreadsheet-style-declaration-editor .property.has-warning):
8631 (.spreadsheet-style-declaration-editor .property.has-warning .warning):
8632 (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
8633 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:
8634 (@media (prefers-dark-interface)):
8635 (.spreadsheet-css-declaration):
8636 (.spreadsheet-css-declaration.locked):
8637 (.spreadsheet-css-declaration .selector.style-attribute):
8638 (.spreadsheet-css-declaration .selector:focus,):
8639 (.spreadsheet-css-declaration.locked .origin::after):
8640 (.spreadsheet-css-declaration .origin .go-to-link,):
8641 (.spreadsheet-css-declaration .media-label):
8642 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:
8643 (@media (prefers-dark-interface)):
8644 (.spreadsheet-style-panel .section-header):
8645 (.spreadsheet-style-panel .section-header .node-link:hover):
8646 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
8647 (@media (prefers-dark-interface)):
8648 (.syntax-highlighted,):
8649 (.cm-s-default,):
8650 (.cm-s-default .cm-attribute):
8651 (.cm-s-default .cm-m-xml.cm-attribute,):
8652 (.cm-s-default .cm-meta):
8653 (.cm-s-default .cm-variable-3):
8654 (.cm-s-default .cm-builtin):
8655 * UserInterface/Views/TabBar.css:
8656 (@media (prefers-dark-interface)):
8657 (.tab-bar):
8658 (.tab-bar > .item):
8659 (.tab-bar > .item > .title):
8660 (.tab-bar > .item:not(.disabled).selected):
8661 (.tab-bar:not(.animating) > .item:not(.selected):hover):
8662 (.tab-bar > .item > .close,):
8663 (body.window-inactive .tab-bar):
8664 (body.window-inactive .tab-bar > .item):
8665 (body.window-inactive .tab-bar > .item.selected):
8666 (body.window-inactive .tab-bar > .item > .title):
8667 * UserInterface/Views/Table.css:
8668 (@media (prefers-dark-interface)):
8669 (.table,):
8670 (.table > .header > .sortable:active):
8671 (.table > .header > :matches(.sort-ascending, .sort-descending)):
8672 (.table > .header > :matches(.sort-ascending, .sort-descending)::after):
8673 * UserInterface/Views/TextEditor.css:
8674 (@media (prefers-dark-interface)):
8675 (.text-editor > .CodeMirror .execution-line):
8676 (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
8677 * UserInterface/Views/TimelineDataGrid.css:
8678 (@media (prefers-dark-interface)):
8679 (.data-grid th:matches(.sort-ascending, .sort-descending)):
8680 * UserInterface/Views/TimelineIcons.css:
8681 (@media (prefers-dark-interface)):
8682 (.time-icon .icon):
8683 * UserInterface/Views/TimelineOverview.css:
8684 (@media (prefers-dark-interface)):
8685 (.timeline-overview > .navigation-bar.timelines):
8686 (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
8687 (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
8688 * UserInterface/Views/TimelineRecordingContentView.css:
8689 (@media (prefers-dark-interface)):
8690 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
8691 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
8692 * UserInterface/Views/Toolbar.css:
8693 (@media (prefers-dark-interface)):
8694 (body .toolbar):
8695 (body.window-inactive .toolbar):
8696 (body.latest-mac .toolbar .item.button,):
8697 (body.latest-mac .toolbar .search-bar > input[type="search"]):
8698 (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
8699 (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
8700 (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
8701 (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
8702 (body.latest-mac .toolbar .dashboard-container):
8703 (body.latest-mac .toolbar .item.button:active):
8704 (body.latest-mac.window-inactive .toolbar .item.button,):
8705 * UserInterface/Views/TreeOutline.css:
8706 (@media (prefers-dark-interface)):
8707 (.tree-outline .item .subtitle):
8708 * UserInterface/Views/Variables.css:
8709 (@media (prefers-dark-interface)):
8710 (:root):
8711 (body.window-inactive):
8712 (body.window-inactive *):
8713 * UserInterface/Views/WebSocketContentView.css:
8714 (@media (prefers-dark-interface)):
8715 (.web-socket.content-view .data-grid table.data tr.revealed):
8716 (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
8717 (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
8718 * UserInterface/Views/XHRBreakpointPopover.css:
8719 (@media (prefers-dark-interface)):
8720 (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
8721
drousso@apple.com032169b2018-09-17 22:43:11 +000087222018-09-17 Devin Rousso <drousso@apple.com>
8723
8724 Web Inspector: generate CSSKeywordCompletions from backend values
8725 https://bugs.webkit.org/show_bug.cgi?id=189041
8726
8727 Reviewed by Joseph Pecoraro.
8728
8729 Moves the longhands map to `WI.CSSKeywordCompletions` for more global access. Creates an
8730 aliases map to support completions on aliases with the same values as the non-alias name.
8731 Removes all keyword-only properties from `WI.CSSKeywordCompletions._propertyKeywordMap` as
8732 they are now generated by the backend (kept for compatibility).
8733
8734 * UserInterface/Models/CSSCompletions.js:
8735 (WI.CSSCompletions):
8736 (WI.CSSCompletions.requestCSSCompletions.propertyNamesCallback):
8737 (WI.CSSCompletions.prototype.isShorthandPropertyName):
8738
8739 * UserInterface/Models/CSSKeywordCompletions.js:
8740 (WI.CSSKeywordCompletions.forProperty.addKeywordsForName): Added.
8741 (WI.CSSKeywordCompletions.forProperty):
8742 (WI.CSSKeywordCompletions.addCustomCompletions):
8743
8744 * UserInterface/Models/CSSProperty.js:
8745 (WI.CSSProperty.isInheritedPropertyName):
8746
drousso@apple.com58615a92018-09-15 18:41:58 +000087472018-09-15 Devin Rousso <drousso@apple.com>
8748
8749 Web Inspector: REGRESSION: breakpoint context menu appears twice in DOM tree
8750 https://bugs.webkit.org/show_bug.cgi?id=189308
8751
8752 Reviewed by Joseph Pecoraro.
8753
8754 * UserInterface/Controllers/DOMBreakpointTreeController.js:
8755 (WI.DOMBreakpointTreeController.appendBreakpointContextMenuItems):
8756 Set a symbol on the `contextMenu` to ensure that the same items are not added twice.
8757
commit-queue@webkit.org38d740d2018-09-15 00:39:59 +000087582018-09-14 Joseph Pecoraro <pecoraro@apple.com>
8759
8760 Web Inspector: Source View doesn't scroll to show line when breakpoint is hit inside of <script> in HTML resource
8761 https://bugs.webkit.org/show_bug.cgi?id=189638
8762 <rdar://problem/43359278>
8763
8764 Reviewed by Matt Baker.
8765
8766 Pausing in Document resources on page load have special considerations where we
8767 may not receive their full content immediately, so we may synthesize inline script
8768 content for the resource until we have full content. Unfortunately, when we get
8769 full content and update the TextEditor we were losing the revealed position and
8770 other editor information. This change specifically targets those cases, by
8771 re-applying editor state when updating such a resource from partial to full content.
8772
8773 * UserInterface/Views/SourceCodeTextEditor.js:
8774 (WI.SourceCodeTextEditor.prototype._contentAvailable):
8775 Signal to the editor that when updating the content it should carry
8776 over editor state. Only do this if we had partial content before.
8777
8778 * UserInterface/Views/TextEditor.js:
8779 (WI.TextEditor):
8780 (WI.TextEditor.prototype.set repeatReveal):
8781 Provide a way to signal we should restore state when update the content.
8782
8783 (WI.TextEditor.set string.update):
8784 (WI.TextEditor.prototype.set string):
8785 When repeatReveal was enabled, restore editor state such as the
8786 revealed location and text selection.
8787
webkit@devinrousso.com0a861ff2018-09-14 16:44:22 +000087882018-09-14 Devin Rousso <webkit@devinrousso.com>
8789
8790 Web Inspector: Record actions performed on ImageBitmapRenderingContext
8791 https://bugs.webkit.org/show_bug.cgi?id=181341
8792
8793 Reviewed by Joseph Pecoraro.
8794
8795 * UserInterface/Models/Recording.js:
8796 (WI.Recording.fromPayload):
8797 (WI.Recording.prototype.createContext):
8798
8799 * UserInterface/Models/RecordingAction.js:
8800 (WI.RecordingAction._prototypeForType):
8801 (WI.RecordingAction.prototype.getImageParameters):
8802
8803 * UserInterface/Views/RecordingActionTreeElement.js:
8804 (WI.RecordingActionTreeElement._classNameForAction.classNameForActionName):
8805
8806 * UserInterface/Views/RecordingContentView.js:
8807 (WI.RecordingContentView):
8808 (WI.RecordingContentView.prototype.get navigationItems):
8809 (WI.RecordingContentView.prototype.updateActionIndex):
8810 (WI.RecordingContentView.prototype.shown):
8811 (WI.RecordingContentView.prototype.hidden):
8812 (WI.RecordingContentView.prototype._generateContentFromSnapshot): Renamed.
8813 (WI.RecordingContentView.prototype._updateImageGrid):
8814 (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Deleted.
8815
8816 * UserInterface/Views/CanvasContentView.js:
8817 (WI.CanvasContentView):
8818
commit-queue@webkit.org3a445192018-09-14 00:08:35 +000088192018-09-13 Jamal Nasser <jamaln@mail.com>
8820
8821 Web Inspector: Dark Mode: bezier curve editor should be updated
8822 https://bugs.webkit.org/show_bug.cgi?id=187657
8823
8824 Reviewed by Matt Baker.
8825
8826 * UserInterface/Views/DarkMode.css:
8827 (@media (prefers-dark-interface)):
8828 (.bezier-editor > .bezier-preview-timing):
8829 (.bezier-editor > .bezier-container .bezier-curve):
8830 (.bezier-editor > .bezier-container .linear-curve):
8831 (.bezier-editor > .bezier-preview):
8832 (.bezier-editor > .bezier-preview > div):
8833 (.bezier-editor > .bezier-container .control-handle):
8834 (.bezier-editor > .bezier-container .control-line):
8835
mattbaker@apple.com0d181ab2018-09-14 00:03:05 +000088362018-09-13 Matt Baker <mattbaker@apple.com>
8837
8838 Web Inspector: Timelines: clicking a row in Script > Events grid triggers Location popover when column is hidden
8839 https://bugs.webkit.org/show_bug.cgi?id=189603
8840 <rdar://problem/44431403>
8841
8842 Reviewed by Joseph Pecoraro.
8843
8844 TimelineDataGrid controls showing/hiding the call frame popover, with subclasses
8845 overriding callFramePopoverAnchorElement to position it. This patch adds
8846 another overridable base class method, shouldShowCallFramePopover, which subclasses
8847 can use to block the popover when the Location column is hidden.
8848
8849 * UserInterface/Views/DataGrid.js:
8850 (WI.DataGrid.prototype.layout):
8851 (WI.DataGrid.prototype._positionResizerElements):
8852 (WI.DataGrid.prototype._isColumnVisible): Deleted.
8853
8854 * UserInterface/Views/LayoutTimelineDataGrid.js:
8855 (WI.LayoutTimelineDataGrid.prototype.shouldShowCallFramePopover):
8856 (WI.LayoutTimelineDataGrid):
8857
8858 * UserInterface/Views/ScriptTimelineDataGrid.js:
8859 (WI.ScriptTimelineDataGrid.prototype.shouldShowCallFramePopover):
8860 (WI.ScriptTimelineDataGrid):
8861
8862 * UserInterface/Views/TimelineDataGrid.js:
8863 (WI.TimelineDataGrid.prototype.shouldShowCallFramePopover):
8864 (WI.TimelineDataGrid.prototype._dataGridSelectedNodeChanged):
8865
commit-queue@webkit.org99bc6f82018-09-13 23:58:41 +000088662018-09-13 Joseph Pecoraro <pecoraro@apple.com>
8867
8868 Web Inspector: Opening inspector with a selected element might immediately scroll that element off screen in the DOM Tree outline
8869 https://bugs.webkit.org/show_bug.cgi?id=189569
8870 <rdar://problem/44397098>
8871
8872 Reviewed by Devin Rousso.
8873
8874 * UserInterface/Views/DOMTreeContentView.js:
8875 (WI.DOMTreeContentView.prototype.layout):
8876 Re-select the selected DOM node in the DOM Tree when the view resizes.
8877 Typically this can happen if the sidebar opens/closes/resizes, in which
8878 case we will want the selected DOM node to stay in view even if the DOM
8879 tree starts wrapping earlier content.
8880
commit-queue@webkit.org46d0cf62018-09-12 16:34:09 +000088812018-09-12 Joseph Pecoraro <pecoraro@apple.com>
8882
8883 Web Inspector: fix test case failures in js-isLikelyStackTrace.html
8884 https://bugs.webkit.org/show_bug.cgi?id=180664
8885
8886 Reviewed by Devin Rousso.
8887
8888 * UserInterface/Models/StackTrace.js:
8889 (WI.StackTrace.isLikelyStackTrace):
8890 In a quick benchmark 50% of the time was rebuilding the same complex regular
8891 expression over and over again. Instead just build the regex once and reset
8892 it before each use.
8893
drousso@apple.com7ae28d12018-09-12 16:10:59 +000088942018-09-12 Devin Rousso <drousso@apple.com>
8895
8896 Web Inspector: imported recordings are unable to be viewed after navigation
8897 https://bugs.webkit.org/show_bug.cgi?id=189208
8898
8899 Reviewed by Joseph Pecoraro.
8900
8901 Move the "Imported Recordings" folder to the top level (instead of under "Overview") so that
8902 it is selectable when there are no canvases but there is an imported recording.
8903
8904 * UserInterface/Controllers/CanvasManager.js:
8905 (WI.CanvasManager.prototype._removeCanvas):
8906 Null out the `source` of each `WI.Recording` for the removed `WI.Canvas`.
8907
8908 * UserInterface/Views/CanvasTabContentView.js:
8909 (WI.CanvasTabContentView):
8910 (WI.CanvasTabContentView.prototype._removeCanvas):
8911 Add each `WI.Recording`for the removed `WI.Canvas` to the "Imported Recordings" folder.
8912
8913 * UserInterface/Views/CanvasContentView.js:
8914 (WI.CanvasContentView.prototype.refresh):
8915 (WI.CanvasContentView.prototype.initialLayout):
8916 (WI.CanvasContentView.prototype._showError):
8917 Drive-by: don't recreate the error preview element if it already exists.
8918
8919 * UserInterface/Views/CanvasSidebarPanel.js:
8920 (WI.CanvasSidebarPanel.prototype.updateRepresentedObjects): Added.
8921 (WI.CanvasSidebarPanel.prototype.shown):
8922 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange): Deleted.
8923
commit-queue@webkit.org35c4bff2018-09-11 19:51:19 +000089242018-09-11 Joseph Pecoraro <pecoraro@apple.com>
8925
8926 Web Inspector: Fix typo "vritualized"
8927 https://bugs.webkit.org/show_bug.cgi?id=189511
8928
8929 Reviewed by Devin Rousso.
8930
8931 * UserInterface/Views/TreeOutline.js:
8932 (WI.TreeOutline):
8933 (WI.TreeOutline.prototype.registerScrollVirtualizer):
8934 (WI.TreeOutline.prototype.updateVirtualizedElements):
8935
joepeck@webkit.org31cd6c12018-09-10 23:47:05 +000089362018-09-10 Joseph Pecoraro <pecoraro@apple.com>
8937
8938 Web Inspector: Address some ESLint warnings
8939 https://bugs.webkit.org/show_bug.cgi?id=188824
8940
8941 Reviewed by Matt Baker.
8942
8943 * .eslintrc:
8944 * UserInterface/Base/Platform.js:
8945 * UserInterface/Controllers/AuditManager.js:
8946 * UserInterface/Controllers/BasicBlockAnnotator.js:
8947 * UserInterface/Controllers/CallFrameTreeController.js:
8948 * UserInterface/Controllers/HARBuilder.js:
8949 * UserInterface/Models/AuditReport.js:
8950 * UserInterface/Models/AuditResult.js:
8951 * UserInterface/Models/AuditTestCase.js:
8952 * UserInterface/Models/AuditTestSuite.js:
8953 * UserInterface/Models/Cookie.js:
8954 * UserInterface/Models/SourceCodePosition.js:
8955 * UserInterface/Test/FrontendTestHarness.js:
8956 * UserInterface/Test/TestSuite.js:
8957 * UserInterface/Views/CanvasContentView.js:
8958 * UserInterface/Views/CollectionContentView.js:
8959 * UserInterface/Views/ContentBrowser.js:
8960 * UserInterface/Views/CookieStorageContentView.js:
8961 * UserInterface/Views/DataGrid.js:
8962 * UserInterface/Views/DatabaseTableContentView.js:
8963 * UserInterface/Views/FindBanner.js:
8964 * UserInterface/Views/JSONResourceContentView.js:
8965 * UserInterface/Views/LogContentView.js:
8966 * UserInterface/Views/ResourceSidebarPanel.js:
8967 * UserInterface/Views/SourceCodeTextEditor.js:
8968 * UserInterface/Views/SpreadsheetTextField.js:
8969 * UserInterface/Workers/Formatter/FormatterUtilities.js:
8970
aestes@apple.com9b9a1342018-09-06 20:42:48 +000089712018-09-06 Andy Estes <aestes@apple.com>
8972
8973 [Apple Pay] Rename the -apple-pay-button-type value "checkout" to "check-out"
8974 https://bugs.webkit.org/show_bug.cgi?id=189366
8975 <rdar://problem/44193218>
8976
8977 Reviewed by Sam Weinig.
8978
8979 * UserInterface/Models/CSSKeywordCompletions.js:
8980
commit-queue@webkit.orgb4026742018-08-31 23:28:26 +000089812018-08-31 Jamal Nasser <xnasser@outlook.com>
8982
8983 Added a CSS rule to DarkMode.css to fix color on sidebar toggle.
8984 <https://webkit.org/b/189139>
8985
8986 Reviewed by Matt Baker.
8987
8988 * UserInterface/Views/DarkMode.css:
8989 (@media (prefers-dark-interface)):
8990 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
8991
ddkilzer@apple.comdb6485c2018-08-29 16:25:15 +000089922018-08-29 David Kilzer <ddkilzer@apple.com>
8993
8994 Remove empty directories from from svn.webkit.org repository
8995 <https://webkit.org/b/189081>
8996
8997 * WebInspectorUI.esproj: Removed.
8998
drousso@apple.comaed11c92018-08-28 23:26:58 +000089992018-08-28 Devin Rousso <drousso@apple.com>
9000
drousso@apple.combfe43f52018-08-29 01:36:36 +00009001 console.log() shows (anonymous function) instead of the passed string when a certain format is used
9002 https://bugs.webkit.org/show_bug.cgi?id=188946
9003 <rdar://problem/43756428>
9004
9005 Reviewed by Brian Burg.
9006
9007 Stack trace URLs are much more likely to follow the following format:
9008
9009 <protocol>://<path>:<line>:<column>
9010
9011 Modify the test regexp to always require that a protocol exists and to check that there are
9012 no ":" inside the protocol or path. Additionally, stack traces usually have more than one
9013 frame, so return false if there isn't more than one line.
9014
9015 * UserInterface/Models/StackTrace.js:
9016 (WI.StackTrace.isLikelyStackTrace):
9017
90182018-08-28 Devin Rousso <drousso@apple.com>
9019
drousso@apple.com9781d032018-08-29 00:06:40 +00009020 Web Inspector: REGRESSION: CanvasSidebarPanel is empty for imported recordings
9021 https://bugs.webkit.org/show_bug.cgi?id=189061
9022
9023 Reviewed by Brian Burg.
9024
9025 When recordings are imported, they don't have an associated `WI.Canvas`, meaning that the
9026 `WI.Recording` is never added to the canvas' `WI.RecordingCollection`. Previously, the
9027 canvas sidebar relied upon the `ItemAdded` event to update the recording `WI.ScopeBar`.
9028 Since the imported recording isn't ever added to the collection, this is never fired.
9029
9030 This patch moves the function call that updates the `WI.ScopeBar` to a more universal path,
9031 ensuring that no matter how a `WI.Recording` is set for the sidebar, it will be shown.
9032
9033 * UserInterface/Views/CanvasSidebarPanel.js:
9034 (WI.CanvasSidebarPanel.prototype.set recording):
9035 (WI.CanvasSidebarPanel.prototype._recordingAdded):
9036 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
9037
90382018-08-28 Devin Rousso <drousso@apple.com>
9039
drousso@apple.comaed11c92018-08-28 23:26:58 +00009040 Web Inspector: Search bar is too narrow in some localizations
9041 https://bugs.webkit.org/show_bug.cgi?id=189060
9042 <rdar://problem/43006369>
9043
9044 Reviewed by Brian Burg.
9045
9046 * UserInterface/Views/Toolbar.css:
9047 (.toolbar .search-bar):
9048
krollin@apple.com386872d2018-08-28 00:07:07 +000090492018-08-27 Keith Rollin <krollin@apple.com>
9050
9051 Unreviewed build fix -- disable LTO for production builds
9052
9053 * Configurations/Base.xcconfig:
9054
aestes@apple.com0303c0f2018-08-27 22:25:26 +000090552018-08-27 Andy Estes <aestes@apple.com>
9056
9057 Teach Web Inspector how to complete keywords for -apple-pay-button-style and -apple-pay-button-type
9058 https://bugs.webkit.org/show_bug.cgi?id=189001
9059
9060 Reviewed by Devin Rousso.
9061
9062 * UserInterface/Models/CSSKeywordCompletions.js:
9063
drousso@apple.com47b3ee32018-08-27 18:49:42 +000090642018-08-27 Devin Rousso <drousso@apple.com>
9065
drousso@apple.com674f4092018-08-27 21:27:58 +00009066 Web Inspector: when scrolling a virtualized TreeOutline, only update the DOM periodically
9067 https://bugs.webkit.org/show_bug.cgi?id=188960
9068
9069 Reviewed by Brian Burg.
9070
9071 After each `updateVirtualizedElements` call, remember the `WI.TreeElement` that is located
9072 halfway within the visible list. When handling each "scroll", only regenerate the
9073 `WI.TreeOutline` DOM if the user has scrolled `extraRows` distance.
9074
9075 * UserInterface/Views/TreeOutline.js:
9076 (WI.TreeOutline):
9077 (WI.TreeOutline.prototype.registerScrollVirtualizer):
9078 (WI.TreeOutline.prototype.updateVirtualizedElements):
9079 (WI.TreeOutline.prototype._calculateVirtualizedValues): Added.
9080
90812018-08-27 Devin Rousso <drousso@apple.com>
9082
drousso@apple.com47b3ee32018-08-27 18:49:42 +00009083 Web Inspector: provide autocompletion for event breakpoints
9084 https://bugs.webkit.org/show_bug.cgi?id=188717
9085
9086 Reviewed by Brian Burg.
9087
9088 * UserInterface/Controllers/DOMTreeManager.js:
9089 (WI.DOMTreeManager):
9090 (WI.DOMTreeManager.prototype.getSupportedEventNames): Added.
9091
9092 * UserInterface/Views/EventBreakpointPopover.js:
9093 (WI.EventBreakpointPopover):
9094 (WI.EventBreakpointPopover.prototype.show):
9095 (WI.EventBreakpointPopover.prototype.dismiss): Added.
9096 (WI.EventBreakpointPopover.prototype.completionSuggestionsClickedCompletion): Added.
9097 (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
9098 (WI.EventBreakpointPopover.prototype._showSuggestionsView): Added.
9099
krollin@apple.com2ba23ff2018-08-27 17:16:17 +000091002018-08-27 Keith Rollin <krollin@apple.com>
9101
9102 Build system support for LTO
9103 https://bugs.webkit.org/show_bug.cgi?id=187785
9104 <rdar://problem/42353132>
9105
9106 Reviewed by Dan Bernstein.
9107
9108 Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
9109 LTO.
9110
9111 * Configurations/Base.xcconfig:
9112 * Configurations/DebugRelease.xcconfig:
9113
drousso@apple.come3ef4fa2018-08-27 16:59:39 +000091142018-08-27 Devin Rousso <drousso@apple.com>
9115
9116 Web Inspector: REGRESSION: virtualized TreeOutline is empty when filtering
9117 https://bugs.webkit.org/show_bug.cgi?id=188959
9118
9119 Reviewed by Brian Burg.
9120
9121 * UserInterface/Views/TreeElement.js:
9122 (WI.TreeElement.prototype.set hidden):
9123 Only set `focusedTreeElement` if the `WI.TreeElement` is selected and not hidden. There is
9124 no reason to focus a hidden or unselected `WI.TreeElement`.
9125
drousso@apple.com7c7137d2018-08-24 04:55:28 +000091262018-08-23 Devin Rousso <drousso@apple.com>
9127
9128 Web Inspector: Color picker: can't enter decimal numbers for opacity
9129 https://bugs.webkit.org/show_bug.cgi?id=187026
9130 <rdar://problem/41446500>
9131
9132 Reviewed by Brian Burg.
9133
9134 After every "input" event, we update the `color` value of the `WI.ColorPicker` based on a
9135 generated string using the values of the various <input>. The issue with this approach is
9136 that adding a decimal point (e.g. "0.") would still be construed as 0, meaning that the
9137 color wouldn't change and would instead be reset back to it's old value. This patch adds an
9138 early return if the newly generated color has the same value as the current color, thereby
9139 meaning that the `color` wouldn't change when changing from "0" to "0.".
9140
9141 * UserInterface/Views/ColorPicker.js:
9142 (WI.ColorPicker):
9143 (WI.ColorPicker.createColorInput):
9144 (WI.ColorPicker.prototype._handleColorInputInput):
9145
simon.fraser@apple.com5cf2d3e2018-08-24 04:10:31 +000091462018-08-23 Simon Fraser <simon.fraser@apple.com>
9147
9148 Add support for dumping GC heap snapshots, and a viewer
9149 https://bugs.webkit.org/show_bug.cgi?id=186416
9150
9151 Reviewed by Joseph Pecoraro.
9152
9153 Make a way to dump information about the GC heap that is useful for looking for leaked
9154 or abandoned objects. This dump is obtained (on Apple platforms) via:
9155 notifyutil -p com.apple.WebKit.dumpGCHeap
9156 which writes a JSON file to /tmp which can then be loaded into the viewer in Tools/GCHeapInspector.
9157
9158 This leverages the heap snapshot used by Web Inspector, adding an alternate format for
9159 the snapshot JSON that adds additional data about objects and why they are GC roots.
9160
9161 The generated bindings code is changed to include the output root reason from isReachableFromOpaqueRoots(),
9162 and to implement heapSnapshot() which provides the address of the wrapped object. A new IDL attribute,
9163 CustomHeapSnapshot, is used to allow custom heapSnapshot() implementations for classes like JSDocument
9164 that need to decorate the heap snapshot cell data with things like the document URL.
9165
9166 GCController registers a notifyutil callback which gathers the debug heap snapshot, and dumps it
9167 to a file in /tmp. The file path is printed out to the system log.
9168
9169 * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
9170 (HeapSnapshot):
9171
bburg@apple.com973aa892018-08-23 23:32:47 +000091722018-08-23 Brian Burg <bburg@apple.com>
9173
9174 Web Inspector: fix typos in some compositing reasons
9175 https://bugs.webkit.org/show_bug.cgi?id=188905
9176 <rdar://problem/43624825>
9177
9178 Reviewed by Simon Fraser.
9179
9180 * Localizations/en.lproj/localizedStrings.js:
9181 * UserInterface/Views/LayerTreeDetailsSidebarPanel.js:
9182 (WI.LayerTreeDetailsSidebarPanel.prototype._populateListOfCompositingReasons):
9183 (WI.LayerTreeDetailsSidebarPanel):
9184 * UserInterface/Views/Layers3DContentView.js:
9185 (WI.Layers3DContentView.prototype._updateReasonsList):
9186 (WI.Layers3DContentView):
9187
drousso@apple.com687c5c32018-08-23 20:06:14 +000091882018-08-23 Devin Rousso <drousso@apple.com>
9189
drousso@apple.com422ab952018-08-23 21:36:40 +00009190 Web Inspector: support breakpoints for timers and animation-frame events
9191 https://bugs.webkit.org/show_bug.cgi?id=188778
9192
9193 Reviewed by Brian Burg.
9194
9195 Add a `type` to `WI.EventBreakpoint` that matches `DOMDebugger.EventBreakpointType`:
9196 - `AnimationFrame` for `requestAnimationFrame`
9197 - `Listener` for any named DOM Event
9198 - `Timer` for `setTimeout` and `setInterval`
9199
9200 Modified `WI.EventBreakpointPopover` to provide ways for selecting these other types, which
9201 is then passed to `WI.DOMDebuggerManager`, which now calls through to the newly added
9202 `DOMDebugger.removeEventBreakpoint` and `DOMDebugger.setEventBreakpoint` that sets
9203 breakpoints for all event types.
9204
9205 * Localizations/en.lproj/localizedStrings.js:
9206 * UserInterface/Images/EventBreakpointAnimationFrame.svg: Added.
9207 * UserInterface/Images/EventBreakpointListener.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/EventBreakpoint.svg.
9208 * UserInterface/Images/EventBreakpointTimer.svg: Added.
9209
9210 * UserInterface/Controllers/DOMDebuggerManager.js:
9211 (WI.DOMDebuggerManager.supportsEventBreakpoints): Added.
9212 (WI.DOMDebuggerManager.prototype.eventBreakpointForTypeAndEventName): Added.
9213 (WI.DOMDebuggerManager.prototype.addEventBreakpoint):
9214 (WI.DOMDebuggerManager.prototype.removeEventBreakpoint.breakpointRemoved): Added.
9215 (WI.DOMDebuggerManager.prototype.removeEventBreakpoint):
9216 (WI.DOMDebuggerManager.prototype._updateEventBreakpoint):
9217 (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Deleted.
9218
9219 * UserInterface/Controllers/DOMTreeManager.js:
9220 (WI.DOMTreeManager.prototype.setBreakpointForEventListener):
9221
9222 * UserInterface/Controllers/DebuggerManager.js:
9223 (WI.DebuggerManager.prototype._pauseReasonFromPayload):
9224
9225 * UserInterface/Models/EventBreakpoint.js:
9226 (WI.EventBreakpoint):
9227 (WI.EventBreakpoint.fromPayload):
9228 (WI.EventBreakpoint.prototype.get type): Added.
9229 (WI.EventBreakpoint.prototype.get serializableInfo):
9230 (WI.EventBreakpoint.prototype.saveIdentityToCookie):
9231
9232 * UserInterface/Views/DebuggerSidebarPanel.js:
9233 (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
9234 (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
9235
9236 * UserInterface/Views/EventBreakpointPopover.js:
9237 (WI.EventBreakpointPopover):
9238 (WI.EventBreakpointPopover.prototype.get breakpoint): Added.
9239 (WI.EventBreakpointPopover.prototype.show):
9240 (WI.EventBreakpointPopover.prototype.show.createOption): Added.
9241 (WI.EventBreakpointPopover.prototype.dismiss): Added.
9242 (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
9243 (WI.EventBreakpointPopover.prototype._handleTypeSelectChange): Added.
9244 (WI.EventBreakpointPopover.prototype.get result): Deleted.
9245 (WI.EventBreakpointPopover.prototype.get value): Deleted.
9246 * UserInterface/Views/EventBreakpointPopover.css:
9247 (.popover .event-breakpoint-content > .event-type): Added.
9248 (.popover .event-breakpoint-content > input): Deleted.
9249
9250 * UserInterface/Views/EventBreakpointTreeElement.js:
9251 (WI.EventBreakpointTreeElement):
9252 * UserInterface/Views/EventBreakpointTreeElement.css:
9253 (.breakpoint.event.animation-frame:not(.breakpoint-paused-icon) .icon): Added.
9254 (.breakpoint.event.listener:not(.breakpoint-paused-icon) .icon): Added.
9255 (.breakpoint.event.timer:not(.breakpoint-paused-icon) .icon): Added.
9256 (.breakpoint.event:not(.breakpoint-paused-icon) .icon): Deleted.
9257
92582018-08-23 Devin Rousso <drousso@apple.com>
9259
drousso@apple.comb3942382018-08-23 20:20:15 +00009260 Web Inspector: `console.inspect(sessionStorage)` first time does not show Session Storage content view if Storage tab was previously unvisited
9261 https://bugs.webkit.org/show_bug.cgi?id=188801
9262
9263 Reviewed by Matt Baker.
9264
9265 * UserInterface/Base/Main.js:
9266 (WI.tabContentViewClassForRepresentedObject):
9267 (WI._storageWasInspected):
9268 Since the `WI.StorageSidebarPanel` is not created until the `WI.StorageTabContentView` is
9269 created, the `WI.StorageManager.Event.DOMStorageObjectWasInspected` and
9270 `WI.StorageManager.Event.DatabaseWasInspected` events do not reach the sidebar. We should
9271 follow what `WI._domNodeWasInspected` does and additionally call `WI.showRepresentedObject`
9272 on the inspected object.
9273
92742018-08-23 Devin Rousso <drousso@apple.com>
9275
drousso@apple.com687c5c32018-08-23 20:06:14 +00009276 Web Inspector: REGRESSION: InspectorStyleSheet not visible in the resources sidebar
9277 https://bugs.webkit.org/show_bug.cgi?id=188819
9278 <rdar://problem/43579039>
9279
9280 Reviewed by Brian Burg.
9281
9282 * UserInterface/Models/ResourceCollection.js:
9283 (WI.ResourceCollection.prototype.objectIsRequiredType):
9284
commit-queue@webkit.orgdd75e002018-08-23 16:37:02 +000092852018-08-23 Joseph Pecoraro <pecoraro@apple.com>
9286
9287 JSContext Inspector: Scripts not showing up in Resources tab
9288 https://bugs.webkit.org/show_bug.cgi?id=188814
9289 <rdar://problem/43576117>
9290
9291 Reviewed by Brian Burg.
9292
9293 * UserInterface/Views/ResourceSidebarPanel.js:
9294 (WI.ResourceSidebarPanel.prototype._addScript):
9295 This path shouldn't apply to JSContext inspection which will
9296 never have a pageTarget and but doesn't have a mainResource.
9297
drousso@apple.com12df7852018-08-22 17:56:44 +000092982018-08-22 Devin Rousso <drousso@apple.com>
9299
9300 Web Inspector: cannot delete multiple event breakpoints by repeatedly hitting delete
9301 https://bugs.webkit.org/show_bug.cgi?id=188803
9302 <rdar://problem/43572838>
9303
9304 Reviewed by Matt Baker.
9305
9306 * UserInterface/Views/DebuggerSidebarPanel.js:
9307 (WI.DebuggerSidebarPanel.prototype._domBreakpointAddedOrRemoved):
9308 (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved):
9309
carlosgc@webkit.orgf7162422018-08-22 07:13:03 +000093102018-08-22 Carlos Garcia Campos <cgarcia@igalia.com>
9311
9312 Unreviewed. Do not include TreeOutlineDataGridSynchronizer.js in inspector main.
9313
9314 The script was removed in r235151.
9315
9316 * UserInterface/Main.html:
9317
mattbaker@apple.com65026172018-08-22 01:08:47 +000093182018-08-21 Matt Baker <mattbaker@apple.com>
9319
9320 Web Inspector: Remove TreeOutlineDataGridSynchronizer
9321 https://bugs.webkit.org/show_bug.cgi?id=188449
9322 <rdar://problem/43107980>
9323
9324 Reviewed by Devin Rousso.
9325
9326 * UserInterface/Views/HeapAllocationsTimelineView.js:
9327 (WI.HeapAllocationsTimelineView.prototype.layout):
9328 * UserInterface/Views/LayoutTimelineView.js:
9329 (WI.LayoutTimelineView.prototype._processPendingRecords):
9330 * UserInterface/Views/NetworkTimelineView.js:
9331 (WI.NetworkTimelineView.prototype._processPendingRecords):
9332 * UserInterface/Views/RenderingFrameTimelineView.js:
9333 (WI.RenderingFrameTimelineView.prototype._processPendingRecords):
9334 (WI.RenderingFrameTimelineView.prototype.dataGridNodeForTreeElement): Deleted.
9335 * UserInterface/Views/ScriptDetailsTimelineView.js:
9336 (WI.ScriptDetailsTimelineView.prototype._processPendingRecords):
9337 * UserInterface/Views/TimelineDataGrid.js:
9338 (WI.TimelineDataGrid):
9339 (WI.TimelineDataGrid.prototype.reset):
9340 (WI.TimelineDataGrid.prototype.shown):
9341 (WI.TimelineDataGrid.prototype.addRowInSortOrder):
9342 (WI.TimelineDataGrid.prototype._refreshDirtyDataGridNodes):
9343 (WI.TimelineDataGrid.prototype._sort):
9344 (WI.TimelineDataGrid.prototype.treeElementForDataGridNode): Deleted.
9345 (WI.TimelineDataGrid.prototype.dataGridNodeForTreeElement): Deleted.
9346 * UserInterface/Views/TreeOutlineDataGridSynchronizer.js: Removed.
9347
commit-queue@webkit.org92139ec2018-08-21 23:58:21 +000093482018-08-21 Joseph Pecoraro <pecoraro@apple.com>
9349
9350 Web Inspector: ⌘G does not while find banner is focused
9351 https://bugs.webkit.org/show_bug.cgi?id=188815
9352 <rdar://problem/43577158>
9353
9354 Reviewed by Matt Baker.
9355
9356 * UserInterface/Base/Main.js:
9357 Allow an <input> element to be the current focus element, which is what will
9358 our global KeyboardShortcut handlers will interact with. Also make sure
9359 that showing the find banner for the first time still focuses it.
9360
drousso@apple.com3a321562018-08-21 21:22:58 +000093612018-08-21 Devin Rousso <drousso@apple.com>
9362
drousso@apple.com4b2a92a2018-08-21 22:08:18 +00009363 Web Inspector: REGRESSION(r235095): duplicate actions existing in WI.CanvasSidebarPanel
9364 https://bugs.webkit.org/show_bug.cgi?id=188808
9365
9366 Reviewed by Joseph Pecoraro.
9367
9368 * UserInterface/Views/CanvasSidebarPanel.js:
9369 (WI.CanvasSidebarPanel.prototype._recordingChanged):
9370 Check that the `WI.RecordingAction` is not already represented in the `WI.TreeOutline`
9371 before adding it.
9372
9373 * UserInterface/Views/CanvasSidebarPanel.css:
9374 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress):
9375 Drive-by: vertically center the <progress> shown for `WI.RecordingFrame` during processing.
9376
93772018-08-21 Devin Rousso <drousso@apple.com>
9378
drousso@apple.com3a321562018-08-21 21:22:58 +00009379 Web Inspector: Canvas: provide default icon for all actions
9380 https://bugs.webkit.org/show_bug.cgi?id=188807
9381
9382 Reviewed by Matt Baker.
9383
9384 * UserInterface/Views/RecordingActionTreeElement.css:
9385 (.item.action > .icon):
9386 (.item.action.initial-state > .icon): Deleted.
9387
commit-queue@webkit.org10ef0562018-08-21 21:00:30 +000093882018-08-21 Joseph Pecoraro <pecoraro@apple.com>
9389
9390 Web Inspector: Rulers.svg is missing
9391 https://bugs.webkit.org/show_bug.cgi?id=188806
9392 <rdar://problem/43574273>
9393
9394 Reviewed by Devin Rousso.
9395
9396 * UserInterface/Images/Rulers.svg: Added.
9397
drousso@apple.com6cbb7b82018-08-20 21:31:55 +000093982018-08-20 Devin Rousso <drousso@apple.com>
9399
drousso@apple.com424f8312018-08-21 02:15:28 +00009400 Web Inspector: allow breakpoints to be set for specific event listeners
9401 https://bugs.webkit.org/show_bug.cgi?id=183138
9402
9403 Reviewed by Joseph Pecoraro.
9404
9405 * Localizations/en.lproj/localizedStrings.js:
9406
9407 * UserInterface/Models/EventBreakpoint.js:
9408 (WI.EventBreakpoint):
9409 (WI.EventBreakpoint.fromPayload): Added.
9410 (WI.EventBreakpoint.prototype.get eventListener): Added.
9411
9412 * UserInterface/Controllers/DOMDebuggerManager.js:
9413 (WI.DOMDebuggerManager):
9414
9415 * UserInterface/Controllers/DOMTreeManager.js:
9416 (WI.DOMTreeManager):
9417 (WI.DOMTreeManager.prototype.get eventBreakpoints): Added.
9418 (WI.DOMTreeManager.prototype._setDocument):
9419 (WI.DOMTreeManager.prototype.setEventListenerDisabled):
9420 (WI.DOMTreeManager.prototype.setBreakpointForEventListener): Added.
9421 (WI.DOMTreeManager.prototype.removeBreakpointForEventListener): Added.
9422 (WI.DOMTreeManager.prototype.breakpointForEventListenerId): Added.
9423
9424 * UserInterface/Controllers/EventBreakpointTreeController.js:
9425 (WI.EventBreakpointTreeController):
9426
9427 * UserInterface/Views/DebuggerSidebarPanel.js:
9428 (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
9429
9430 * UserInterface/Views/EventListenerSectionGroup.js:
9431 (WI.EventListenerSectionGroup):
9432 (WI.EventListenerSectionGroup.prototype._createDisabledToggleRow):
9433 (WI.EventListenerSectionGroup.prototype._createBreakpointToggleRow): Added.
9434
9435 * UserInterface/Views/EventBreakpointTreeElement.js:
9436 (WI.EventBreakpointTreeElement):
9437 (WI.EventBreakpointTreeElement.prototype.ondelete):
9438 (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
9439 (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
9440
94412018-08-20 Devin Rousso <drousso@apple.com>
9442
drousso@apple.com6cbb7b82018-08-20 21:31:55 +00009443 Web Inspector: Canvas tab: allow recording processing to be stopped midway
9444 https://bugs.webkit.org/show_bug.cgi?id=185152
9445
9446 Reviewed by Joseph Pecoraro.
9447
9448 Previously, `WI.Recording` used a `WI.YieldableTask` to process every action in such a way
9449 as to not block the UI. The downside to this approach was that it used a message view to
9450 indicate the progress of this process, and prevented the user from viewing the `WI.Recording`
9451 until that process was completed.
9452
9453 This patch changes `WI.Recording` to instead use `async/await` and fire events whenever a
9454 `WI.RecordingAction` (and `WI.RecordingFrame`) finished processing, allowing it to be added
9455 to the recording `WI.TreeOutline` and selected by the user. Additionally, a pause/resume
9456 button is added to the `WI.CanvasSidebarPanel` so the user has greater control over what
9457 how much of the `WI.Recording` they want to process.
9458
9459 * Localizations/en.lproj/localizedStrings.js:
9460
9461 * UserInterface/Base/Utilities.js:
9462 (Promise.delay)
9463 Utility function for promisifying `setTimeout`.
9464
9465 * UserInterface/Models/Recording.js:
9466 (WI.Recording):
9467 (WI.Recording.prototype.get processing): Added.
9468 (WI.Recording.prototype.get ready): Added.
9469 (WI.Recording.prototype.startProcessing): Added.
9470 (WI.Recording.prototype.stopProcessing): Added.
9471 (WI.Recording.prototype.async._process): Added.
9472 (WI.Recording.prototype.process): Deleted.
9473 (WI.Recording.prototype.async.yieldableTaskWillProcessItem): Deleted.
9474 (WI.Recording.prototype.async.yieldableTaskDidFinish): Deleted.
9475
9476 * UserInterface/Models/RecordingAction.js:
9477 (WI.RecordingAction):
9478 (WI.RecordingAction.prototype.get ready): Added.
9479 (WI.RecordingAction.prototype.async.swizzle):
9480 (WI.RecordingAction.prototype.apply):
9481
9482 * UserInterface/Models/RecordingInitialStateAction.js:
9483 (WI.RecordingInitialStateAction):
9484
9485 * UserInterface/Views/CanvasSidebarPanel.js:
9486 (WI.CanvasSidebarPanel):
9487 (WI.CanvasSidebarPanel.prototype.set recording):
9488 (WI.CanvasSidebarPanel.prototype.set action):
9489 (WI.CanvasSidebarPanel.prototype._recordingAdded):
9490 (WI.CanvasSidebarPanel.prototype._recordingRemoved):
9491 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
9492 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
9493 (WI.CanvasSidebarPanel.prototype._recordingChanged):
9494 (WI.CanvasSidebarPanel.prototype._recordingChanged.createPauseButton): Added.
9495 (WI.CanvasSidebarPanel.prototype._recordingChanged.createResumeButton): Added.
9496 (WI.CanvasSidebarPanel.prototype._createRecordingFrameTreeElement): Added.
9497 (WI.CanvasSidebarPanel.prototype._createRecordingActionTreeElement): Added.
9498 (WI.CanvasSidebarPanel.prototype._handleRecordingProcessedAction): Added.
9499 (WI.CanvasSidebarPanel.prototype._handleRecordingStartProcessingFrame): Added.
9500 * UserInterface/Views/CanvasSidebarPanel.css:
9501 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle > progress): Added.
9502 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline:matches(:focus, .force-focus) .item.processing.selected .subtitle > progress): Added.
9503 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.processing .subtitle::before): Added.
9504 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options): Added.
9505 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .recording-processing-options > .indeterminate-progress-spinner): Added.
9506 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner): Deleted.
9507
9508 * UserInterface/Views/RecordingContentView.js:
9509 (WI.RecordingContentView):
9510 (WI.RecordingContentView.prototype.updateActionIndex):
9511 (WI.RecordingContentView.prototype.initialLayout):
9512 (WI.RecordingContentView.prototype._updateCanvasPath):
9513 (WI.RecordingContentView.prototype._handleRecordingProcessedAction): Added.
9514 (WI.RecordingContentView.prototype._updateProcessProgress): Deleted.
9515 (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Deleted.
9516 (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Deleted.
9517 * UserInterface/Views/RecordingContentView.css:
9518 (.content-view:not(.tab).recording > header > .slider-container > .slider-value): Added.
9519
9520 * UserInterface/Views/FolderTreeElement.js:
9521 (WI.FolderTreeElement):
9522
9523 * UserInterface/Views/GeneralTreeElement.js:
9524 (WI.GeneralTreeElement.prototype.get statusElement): Added.
9525 (WI.GeneralTreeElement.prototype._updateTitleElements):
9526
9527 * UserInterface/Views/RecordingContentView.js:
9528 (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
9529 (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
9530 Drive-by: `WI.Collection` doesn't have a `values()` accessor for the underlying `Set`.
9531
9532 * UserInterface/Views/RecordingNavigationSidebarPanel.css: Removed.
9533 * UserInterface/Views/RecordingNavigationSidebarPanel.js: Removed.
9534 These files are no longer used since they were "merged" into `WI.CanvasSidebarPanel`.
9535
webkit@devinrousso.combfca5b72018-08-20 20:30:50 +000095362018-08-20 Devin Rousso <webkit@devinrousso.com>
9537
9538 Web Inspector: Canvas tab: create icons for recordings/shaders in the preview tile
9539 https://bugs.webkit.org/show_bug.cgi?id=183650
9540
9541 Reviewed by Joseph Pecoraro.
9542
9543 * Localizations/en.lproj/localizedStrings.js:
9544
9545 * UserInterface/Views/CanvasContentView.js:
9546 (WI.CanvasContentView):
9547 (WI.CanvasContentView.prototype.initialLayout):
9548 (WI.CanvasContentView.prototype.attached):
9549 (WI.CanvasContentView.prototype._recordingStopped):
9550 (WI.CanvasContentView.prototype._shaderProgramAdded):
9551 (WI.CanvasContentView.prototype._shaderProgramRemoved):
9552 (WI.CanvasContentView.prototype._updateViewRelatedItems):
9553 (WI.CanvasContentView.prototype._handleViewShaderButtonClicked):
9554 (WI.CanvasContentView.prototype._handleViewRecordingButtonClicked):
9555 (WI.CanvasContentView.prototype._addRecording): Deleted.
9556 (WI.CanvasContentView.prototype._handleRecordingSelectElementChange): Deleted.
9557 * UserInterface/Views/CanvasOverviewContentView.css:
9558 (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items):
9559 (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > :matches(.view-shader, .view-recording)):
9560 (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > img + img):
9561 (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-shader):
9562 (.content-view.canvas-overview .content-view.canvas > footer > .view-related-items > .view-recording):
9563 (.content-view.canvas-overview .content-view.canvas > footer > .recordings): Deleted.
9564 (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before): Deleted.
9565 (.content-view.canvas-overview .content-view.canvas > footer > .recordings > select): Deleted.
9566 (.content-view.canvas-overview .content-view.canvas > footer .recordings > select:focus): Deleted.
9567 Create two image buttons in the bottom left corner of each canvas tile that appear when the
9568 canvas has associated shaders and/or recordings. Clicking each image button will function
9569 similar to path components, in that if there is only one shader/recording, it is immediately
9570 selected, whereas if there are multiple a dropdown is shown.
9571
9572 * UserInterface/Views/CanvasSidebarPanel.js:
9573 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
9574 (WI.CanvasSidebarPanel.prototype._recordingChanged):
9575 Drive-by: ensure that the selected recording action is properly updated when first loading a
9576 recording and when scrubbing through one.
9577
drousso@apple.com7a1bd382018-08-17 02:37:46 +000095782018-08-16 Devin Rousso <drousso@apple.com>
9579
9580 Web Inspector: support breakpoints for arbitrary event names
9581 https://bugs.webkit.org/show_bug.cgi?id=183118
9582
9583 Reviewed by Joseph Pecoraro.
9584
9585 Create UI for setting breakpoints on event names. Ties into renamed DOMDebugger commands,
9586 specifically `setEventBreakpoint` and `removeEventBreakpoint`, that will pause execution if
9587 any DOM event is fired that matches any previously registered breakpoints.
9588
9589 Event breakpoints are distinguished by name, and they currently apply globally, meaning
9590 that only one breakpoint per event name can be registered.
9591
9592 Event breakpoints are created in the Debugger tab in a new "Event Breakpoints" section in
9593 the Navigation sidebar. A new type of popover, EventBreakpointPopover, is used, but right
9594 now all it contains is a basic text input for the event name. Similarly, a new TreeElement
9595 subclass, EventBreakpointTreeElement, is used when showing the list of event listener
9596 breakpoints, but all it shows now is the event name.
9597
9598 The majority of the logic in this patch was derived from XHR breakpoints.
9599
9600 * Localizations/en.lproj/localizedStrings.js:
9601 * UserInterface/Main.html:
9602 * UserInterface/Test.html:
9603 * UserInterface/Images/EventBreakpoint.svg: Added.
9604
9605 * UserInterface/Models/EventBreakpoint.js: Added.
9606 (WI.EventBreakpoint):
9607 (WI.EventBreakpoint.prototype.get eventName):
9608 (WI.EventBreakpoint.prototype.get disabled):
9609 (WI.EventBreakpoint.prototype.set disabled):
9610 (WI.EventBreakpoint.prototype.get serializableInfo):
9611 (WI.EventBreakpoint.prototype.saveIdentityToCookie):
9612
9613 * UserInterface/Controllers/DOMDebuggerManager.js:
9614 (WI.DOMDebuggerManager):
9615 (WI.DOMDebuggerManager.prototype.get eventBreakpoints): Added.
9616 (WI.DOMDebuggerManager.prototype.eventBreakpointForEventName): Added.
9617 (WI.DOMDebuggerManager.prototype.addEventBreakpoint): Added.
9618 (WI.DOMDebuggerManager.prototype.removeEventBreakpoint): Added.
9619 (WI.DOMDebuggerManager.prototype._speculativelyResolveBreakpoints):
9620 (WI.DOMDebuggerManager.prototype._updateEventBreakpoint.breakpointUpdated): Added.
9621 (WI.DOMDebuggerManager.prototype._updateEventBreakpoint): Added.
9622 (WI.DOMDebuggerManager.prototype._resolveEventBreakpoint): Added.
9623 (WI.DOMDebuggerManager.prototype._saveEventBreakpoints): Added.
9624 (WI.DOMDebuggerManager.prototype._eventBreakpointDisabledStateDidChange): Added.
9625
9626 * UserInterface/Controllers/DebuggerManager.js:
9627 (WI.DebuggerManager.prototype._pauseReasonFromPayload):
9628
9629 * UserInterface/Controllers/EventBreakpointTreeController.js: Added.
9630 (WI.EventBreakpointTreeController):
9631 (WI.EventBreakpointTreeController.prototype.revealAndSelect):
9632 (WI.EventBreakpointTreeController.prototype._eventBreakpointAdded):
9633 (WI.EventBreakpointTreeController.prototype._eventBreakpointRemoved):
9634 (WI.EventBreakpointTreeController.prototype._addTreeElement):
9635
9636 * UserInterface/Views/DebuggerSidebarPanel.js:
9637 (WI.DebuggerSidebarPanel):
9638 (WI.DebuggerSidebarPanel.prototype._updatePauseReasonSection):
9639 (WI.DebuggerSidebarPanel.prototype._eventBreakpointAddedOrRemoved): Added.
9640 (WI.DebuggerSidebarPanel.prototype._addEventBreakpointButtonClicked): Added.
9641 (WI.DebuggerSidebarPanel.prototype.willDismissPopover):
9642
9643 * UserInterface/Views/EventBreakpointTreeElement.js: Added.
9644 (WI.EventBreakpointTreeElement):
9645 (WI.EventBreakpointTreeElement.prototype.onattach):
9646 (WI.EventBreakpointTreeElement.prototype.ondetach):
9647 (WI.EventBreakpointTreeElement.prototype.ondelete):
9648 (WI.EventBreakpointTreeElement.prototype.onenter):
9649 (WI.EventBreakpointTreeElement.prototype.onspace):
9650 (WI.EventBreakpointTreeElement.prototype.populateContextMenu):
9651 (WI.EventBreakpointTreeElement.prototype._statusImageElementClicked):
9652 (WI.EventBreakpointTreeElement.prototype._statusImageElementFocused):
9653 (WI.EventBreakpointTreeElement.prototype._statusImageElementMouseDown):
9654 (WI.EventBreakpointTreeElement.prototype._toggleBreakpoint):
9655 (WI.EventBreakpointTreeElement.prototype._updateStatus):
9656 * UserInterface/Views/EventBreakpointTreeElement.css: Added.
9657 (.breakpoint.event-listener:not(.breakpoint-paused-icon) .icon):
9658
9659 * UserInterface/Views/EventBreakpointPopover.js: Added.
9660 (WI.EventBreakpointPopover):
9661 (WI.EventBreakpointPopover.prototype.get result):
9662 (WI.EventBreakpointPopover.prototype.get value):
9663 (WI.EventBreakpointPopover.prototype.show):
9664 (WI.EventBreakpointPopover.prototype._presentOverTargetElement):
9665 * UserInterface/Views/EventBreakpointPopover.css: Added.
9666 (.popover .event-listener-breakpoint-content):
9667 (.popover .event-listener-breakpoint-content > input):
9668
9669 * UserInterface/Views/NavigationSidebarPanel.js:
9670 (WI.NavigationSidebarPanel.prototype._isTreeElementWithoutRepresentedObject):
9671
commit-queue@webkit.org9356f972018-08-16 18:41:30 +000096722018-08-16 Joseph Pecoraro <pecoraro@apple.com>
9673
commit-queue@webkit.orge78cf802018-08-16 22:49:04 +00009674 Web Inspector: Show Initiator information in Network Table
9675 https://bugs.webkit.org/show_bug.cgi?id=188590
9676 <rdar://problem/43305488>
9677
9678 Reviewed by Matt Baker.
9679
9680 * UserInterface/Views/NetworkResourceDetailView.js:
9681 (WI.NetworkResourceDetailView):
9682 (WI.NetworkResourceDetailView.prototype.shown):
9683 (WI.NetworkResourceDetailView.prototype.willShowWithCookie):
9684 (WI.NetworkResourceDetailView.prototype._showContentViewForNavigationItem):
9685 When a ResourceDetailView gets shown, it may also want to show its initial content view
9686 with a cookie as the cookie may contain position highlight information.
9687
9688 * UserInterface/Views/NetworkTableContentView.js:
9689 (WI.NetworkTableContentView):
9690 (WI.NetworkTableContentView.prototype._showResourceDetailView):
9691 (WI.NetworkTableContentView.prototype.showRepresentedObject):
9692 When showing a represented object, pass the cookie information on to the detail
9693 view's so that it may include the cookie when showing the final content view.
9694
9695 (WI.NetworkTableContentView.prototype.tablePopulateCell):
9696 (WI.NetworkTableContentView.prototype._populateInitiatorCell):
9697 (WI.NetworkTableContentView.prototype.initialLayout):
9698 New initiator column contains a source code link to the call site.
9699
9700 (WI.NetworkTableContentView.prototype._generateSortComparator):
9701 (WI.NetworkTableContentView.prototype._entryForResource):
9702 Entry data for the initiator is a display string that can be sorted easily.
9703
97042018-08-16 Joseph Pecoraro <pecoraro@apple.com>
9705
commit-queue@webkit.org9356f972018-08-16 18:41:30 +00009706 LayoutTest inspector/worker/debugger-pause.html sometimes times out
9707 https://bugs.webkit.org/show_bug.cgi?id=188580
9708
9709 Reviewed by Matt Baker.
9710
9711 * UserInterface/Protocol/Target.js:
9712 (WI.Target.prototype.get mainResource):
9713 (WI.Target.prototype.set mainResource):
9714 Dispatch an event when the Main Resource is set.
9715
akeerthi@apple.coma1332872018-08-15 20:42:26 +000097162018-08-15 Aditya Keerthi <akeerthi@apple.com>
9717
9718 [Datalist] Add button to TextFieldInputs with a datalist
9719 https://bugs.webkit.org/show_bug.cgi?id=187741
9720
9721 Reviewed by Tim Horton.
9722
9723 Add keyword completion for 'list-button'.
9724
9725 * UserInterface/External/CodeMirror/css.js:
9726 * UserInterface/Models/CSSKeywordCompletions.js:
9727
drousso@apple.comafbfd7c2018-08-15 17:29:14 +000097282018-08-15 Devin Rousso <drousso@apple.com>
9729
9730 Web Inspector: REGRESSION(r?): the probe sidebar doesn't show up when adding probes
9731 https://bugs.webkit.org/show_bug.cgi?id=188594
9732
9733 Reviewed by Brian Burg.
9734
9735 * UserInterface/Views/ProbeDetailsSidebarPanel.js:
9736 (WI.ProbeDetailsSidebarPanel.prototype.set inspectedProbeSets):
9737 (WI.ProbeDetailsSidebarPanel.prototype.initialLayout):
9738 Add checks to ensure that DOM elements for each probe section exist before trying to
9739 add/remove them from the sidebar. This can happen if probes are inspected before the sidebar
9740 is shown for the first time.
9741
9742 * UserInterface/Views/ProbeSetDataGrid.js:
9743 (WI.ProbeSetDataGrid):
9744 (WI.ProbeSetDataGrid.columnIdentifierForProbe): Added.
9745 (WI.ProbeSetDataGrid.prototype._setupProbe):
9746 (WI.ProbeSetDataGrid.prototype._teardownProbe):
9747 (WI.ProbeSetDataGrid.prototype._probeExpressionChanged):
9748 * UserInterface/Views/ProbeSetDataGridNode.js:
9749 (WI.ProbeSetDataGridNode.prototype.set frame):
9750 Provide better column identifiers for each probe's `WI.DataGrid`. It's possible for the
9751 numeric probe ID value to be stringified when passing it into the constructor of
9752 `WI.DataGrid`, which will not match the original numeric value on later retrieval.
9753
mattbaker@apple.com8e8fd912018-08-15 06:10:34 +000097542018-08-14 Matt Baker <mattbaker@apple.com>
9755
9756 Web Inspector: Table should not center rows when scrolling them into view
9757 https://bugs.webkit.org/show_bug.cgi?id=188593
9758 <rdar://problem/43311660>
9759
9760 Reviewed by Devin Rousso.
9761
9762 * UserInterface/Views/Table.js:
9763 (WI.Table.prototype._handleKeyDown):
9764
mattbaker@apple.com1df5c5d2018-08-13 22:44:18 +000097652018-08-13 Matt Baker <mattbaker@apple.com>
9766
9767 Web Inspector: Table should handle row selection instead of the table delegate
9768 https://bugs.webkit.org/show_bug.cgi?id=188534
9769 <rdar://problem/43253335>
9770
9771 Reviewed by Joseph Pecoraro.
9772
9773 Row selection should be implemented by Table, rather than its delegate.
9774
9775 * UserInterface/Views/NetworkTableContentView.js:
9776 (WI.NetworkTableContentView.prototype.tableShouldSelectRow):
9777 (WI.NetworkTableContentView.prototype.tableCellMouseDown): Deleted.
9778 Prevent selection unless the clicked cell belongs to the name column.
9779
9780 * UserInterface/Views/ResourceCookiesContentView.js:
9781 (WI.ResourceCookiesContentView.prototype.tableShouldSelectRow):
9782 Always prevent selection.
9783
9784 * UserInterface/Views/Table.js:
9785 (WI.Table):
9786 (WI.Table.prototype._handleMouseDown):
9787
akeerthi@apple.com969f86d2018-08-12 20:19:25 +000097882018-08-12 Aditya Keerthi <akeerthi@apple.com>
9789
9790 [macOS] Color wells should appear pressed when presenting a color picker
9791 https://bugs.webkit.org/show_bug.cgi?id=188477
9792
9793 Reviewed by Tim Horton.
9794
9795 Add keyword completion for 'color-well'.
9796
9797 * UserInterface/External/CodeMirror/css.js:
9798 * UserInterface/Models/CSSKeywordCompletions.js:
9799
nvasilyev@apple.com39754d82018-08-09 21:47:00 +000098002018-08-09 Nikita Vasilyev <nvasilyev@apple.com>
9801
9802 Web Inspector: Dark Mode: SourceCodeTextEditor error/warning text widget is too light
9803 https://bugs.webkit.org/show_bug.cgi?id=188126
9804 <rdar://problem/42674963>
9805
9806 Reviewed by Matt Baker.
9807
9808 * UserInterface/Views/DarkMode.css:
9809 (@media (prefers-dark-interface)):
9810 (.source-code.text-editor > .CodeMirror .issue-widget.warning,): Added.
9811 (.source-code.text-editor > .CodeMirror .issue-widget.error,): Added.
9812
commit-queue@webkit.org23c57722018-08-07 16:19:44 +000098132018-08-07 Joseph Pecoraro <pecoraro@apple.com>
9814
9815 Web Inspector: Add another Protocol Version (iOS 12)
9816 https://bugs.webkit.org/show_bug.cgi?id=188359
9817 <rdar://problem/42981364>
9818
9819 Reviewed by Brian Burg.
9820
9821 * UserInterface/Protocol/Legacy/12.0/InspectorBackendCommands.js: Added.
9822 * Versions/Inspector-iOS-12.0.json: Added.
9823
joepeck@webkit.org1a0f3762018-08-07 00:25:52 +000098242018-08-06 Joseph Pecoraro <pecoraro@apple.com>
9825
9826 Web Inspector: Global search sometimes returns duplicate results for a resource
9827 https://bugs.webkit.org/show_bug.cgi?id=188270
9828 <rdar://problem/42867498>
9829
9830 Reviewed by Brian Burg.
9831
9832 * UserInterface/Views/SearchSidebarPanel.js:
9833 (WI.SearchSidebarPanel.prototype.performSearch.resourcesCallback):
9834 Avoid duplicate search results in the frontend. We should also fix the backend
9835 but a frontend fix will also be desired for backends that have the issue.
9836
commit-queue@webkit.org0406f9f2018-08-03 23:13:57 +000098372018-08-03 Alex Christensen <achristensen@webkit.org>
9838
9839 Fix spelling of "overridden"
9840 https://bugs.webkit.org/show_bug.cgi?id=188315
9841
9842 Reviewed by Darin Adler.
9843
9844 * UserInterface/Views/ContentBrowserTabContentView.js:
9845 (WI.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):
9846 * UserInterface/Views/GeneralTreeElement.js:
9847 (WI.GeneralTreeElement.prototype.ondetach):
9848 * UserInterface/Views/NavigationBar.js:
9849 (WI.NavigationBar.prototype.get sizesToFit):
9850 * UserInterface/Views/NavigationSidebarPanel.js:
9851 (WI.NavigationSidebarPanel.prototype.shouldFilterPopulate):
9852 * UserInterface/Views/TextEditor.js:
9853 (WI.TextEditor.prototype.canBeFormatted):
9854 * UserInterface/Views/TreeElement.js:
9855 (WI.TreeElement.prototype.onpopulate):
9856
nvasilyev@apple.comd8194642018-08-01 18:09:38 +000098572018-08-01 Nikita Vasilyev <nvasilyev@apple.com>
9858
nvasilyev@apple.comd21450e2018-08-01 18:12:17 +00009859 Web Inspector: Dark Mode: SourceCodeTextEditor thread indicator widget is too light
9860 https://bugs.webkit.org/show_bug.cgi?id=188119
9861 <rdar://problem/42670811>
9862
9863 Reviewed by Matt Baker.
9864
9865 Make the background of the thread indicator widget darker.
9866
9867 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.
9868
9869 * UserInterface/Views/DarkMode.css:
9870 (@media (prefers-dark-interface)):
9871 (.text-editor > .CodeMirror .execution-line):
9872 (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
9873 * UserInterface/Views/SourceCodeTextEditor.css:
9874 (.source-code.text-editor .CodeMirror-linewidget):
9875 (.source-code.text-editor > .CodeMirror .line-indicator-widget.inline):
9876 (@media (prefers-dark-interface)):
9877 (.source-code.text-editor > .CodeMirror .thread-widget.inline):
9878 * UserInterface/Views/SourceCodeTextEditor.js:
9879 (WI.SourceCodeTextEditor.prototype._updateThreadIndicatorWidget):
9880 (WI.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
9881 * UserInterface/Views/TextEditor.css:
9882 (@media (prefers-dark-interface)):
9883 (.text-editor > .CodeMirror .execution-line.primary .CodeMirror-linenumber::after):
9884 * UserInterface/Views/Variables.css:
9885 (:root):
9886
98872018-08-01 Nikita Vasilyev <nvasilyev@apple.com>
9888
nvasilyev@apple.comd8194642018-08-01 18:09:38 +00009889 Web Inspector: Dark Mode: disabled breakpoints banner is too light
9890 https://bugs.webkit.org/show_bug.cgi?id=188120
9891 <rdar://problem/42671348>
9892
9893 Reviewed by Matt Baker.
9894
9895 * UserInterface/Views/DebuggerSidebarPanel.css:
9896 (@media (prefers-dark-interface)):
9897 (.sidebar > .panel.navigation.debugger .warning-banner):
9898
commit-queue@webkit.org97e13b12018-07-31 18:23:01 +000098992018-07-31 Joseph Pecoraro <pecoraro@apple.com>
9900
9901 Web Inspector: Include a full URL tooltip when hovering the name in the Network Tab
9902 https://bugs.webkit.org/show_bug.cgi?id=188199
9903
9904 Reviewed by Matt Baker.
9905
9906 * UserInterface/Views/NetworkTableContentView.js:
9907 (WI.NetworkTableContentView.prototype._populateNameCell):
9908 Give a tooltip to the entire cell since the entire cell has interactivity.
9909
nvasilyev@apple.comd05f3642018-07-30 23:10:56 +000099102018-07-30 Nikita Vasilyev <nvasilyev@apple.com>
9911
9912 Web Inspector: Dark Mode: Search sidebar panel text field has a white background
9913 https://bugs.webkit.org/show_bug.cgi?id=188128
9914 <rdar://problem/42678270>
9915
9916 Reviewed by Matt Baker.
9917
9918 Make the search bar in Search tab match the style of the filter bar.
9919
9920 * UserInterface/Views/DarkMode.css:
9921 (@media (prefers-dark-interface)):
9922 (:matches(.search-bar, .filter-bar) > input[type="search"],):
9923 (:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
9924 (:matches(.search-bar, .filter-bar) > input[type="search"]:focus):
9925 (.filter-bar > input[type="search"]): Deleted.
9926 (.filter-bar > input[type="search"]::placeholder): Deleted.
9927 (.filter-bar > input[type="search"]:focus): Deleted.
9928
ryanhaddad@apple.comb8727ff2018-07-27 01:37:54 +000099292018-07-26 Ryan Haddad <ryanhaddad@apple.com>
9930
9931 Unreviewed, rolling out r234281.
9932
9933 Broke internal builds.
9934
9935 Reverted changeset:
9936
9937 "[Datalist] Add button to TextFieldInputs with a datalist"
9938 https://bugs.webkit.org/show_bug.cgi?id=187741
9939 https://trac.webkit.org/changeset/234281
9940
commit-queue@webkit.org38893832018-07-26 23:12:23 +000099412018-07-26 Aditya Keerthi <akeerthi@apple.com>
9942
9943 [Datalist] Add button to TextFieldInputs with a datalist
9944 https://bugs.webkit.org/show_bug.cgi?id=187741
9945
9946 Reviewed by Tim Horton.
9947
9948 Add keyword completion for 'list-button'.
9949
9950 * UserInterface/External/CodeMirror/css.js:
9951 * UserInterface/Models/CSSKeywordCompletions.js:
9952
nvasilyev@apple.com49e70b32018-07-26 00:19:45 +000099532018-07-25 Nikita Vasilyev <nvasilyev@apple.com>
9954
9955 Web Inspector: Dark Mode: Breakpoint editor in JS debugger has inconsistent background
9956 https://bugs.webkit.org/show_bug.cgi?id=188026
9957
9958 Reviewed by Matt Baker.
9959
9960 * UserInterface/Views/DarkMode.css:
9961 (@media (prefers-dark-interface)):
9962 (.edit-breakpoint-popover-condition):
9963 (.breakpoint-action-eval-editor):
9964
nvasilyev@apple.comd256d632018-07-23 00:40:26 +000099652018-07-22 Nikita Vasilyev <nvasilyev@apple.com>
9966
9967 Web Inspector: Dark Mode: remove odd-looking top border
9968 https://bugs.webkit.org/show_bug.cgi?id=187885
9969
9970 Reviewed by Matt Baker.
9971
9972 This border doesn't exist in the light mode, and it shouldn't be in the dark mode either.
9973
9974 * UserInterface/Views/DarkMode.css:
9975 (@media (prefers-dark-interface)):
9976 (body .toolbar):
9977
nvasilyev@apple.com79565b32018-07-21 00:30:09 +000099782018-07-20 Nikita Vasilyev <nvasilyev@apple.com>
9979
9980 Web Inspector: Dark Mode: Layers tab background should be dark
9981 https://bugs.webkit.org/show_bug.cgi?id=187660
9982 <rdar://problem/42179616>
9983
9984 Reviewed by Brian Burg.
9985
9986 * UserInterface/Views/Layers3DContentView.js:
9987 (WI.Layers3DContentView.prototype.initialLayout):
9988 * UserInterface/Views/Variables.css:
9989 (:root):
9990
ross.kirsling@sony.comf8933cc2018-07-20 04:29:21 +000099912018-07-19 Ross Kirsling <ross.kirsling@sony.com>
9992
9993 Web Inspector: Layers visualization shouldn't select on mousedown
9994 https://bugs.webkit.org/show_bug.cgi?id=187488
9995
9996 Reviewed by Matt Baker.
9997
9998 * UserInterface/Views/Layers3DContentView.js:
9999 (WI.Layers3DContentView):
10000 (WI.Layers3DContentView.prototype.initialLayout):
10001 (WI.Layers3DContentView.prototype._canvasMouseDown):
10002 (WI.Layers3DContentView.prototype._canvasMouseUp):
10003 Don't update selection on mousedown, update on mouseup!
10004 Specifically, only update when mousedown & mouseup targets are the same and mousemove hasn't been triggered.
10005
nvasilyev@apple.come763d212018-07-19 17:37:17 +0000100062018-07-19 Nikita Vasilyev <nvasilyev@apple.com>
10007
10008 Web Inspector: Dark Mode: poor contrast for Search Tab's "the page's content has changed" message
10009 https://bugs.webkit.org/show_bug.cgi?id=187792
10010
10011 Reviewed by Brian Burg.
10012
10013 * UserInterface/Views/DarkMode.css:
10014 (@media (prefers-dark-interface)):
10015 (:root):
10016 Make the background color slightly more yellow and less red. This slightly dicreases the contrast
10017 but makes the text look less like an error.
10018
10019 * UserInterface/Views/SearchSidebarPanel.css:
10020 (@media (prefers-dark-interface)):
10021 (.sidebar > .panel.navigation.search.changed > .banner):
10022
mattbaker@apple.com553c3e82018-07-18 18:40:14 +0000100232018-07-18 Matt Baker <mattbaker@apple.com>
10024
10025 Web Inspector: REGRESSION(r232591): CodeMirrorEditor should not use a RegExp lineSeparator option
10026 https://bugs.webkit.org/show_bug.cgi?id=187772
10027 <rdar://problem/42331640>
10028
10029 Reviewed by Joseph Pecoraro.
10030
10031 * UserInterface/Views/CodeMirrorEditor.js:
10032 (WI.CodeMirrorEditor.create):
10033 (WI.CodeMirrorEditor):
10034 CodeMirror should be left to auto-detect line separators. By default
10035 it detects \n, \r\n, and \r. By specifying a regular expression we
10036 merely cause problems when CodeMirror uses the supplied lineSeparator
10037 when joining its array of lines together.
10038
10039 * UserInterface/Views/TextEditor.js:
10040 (WI.TextEditor.set string.update):
10041 (WI.TextEditor.prototype.set string):
10042 This assertion was only true when we forced "\n" line endings everywhere.
10043 It no longer holds for source text with "\r\n" (Windows-style) line endings.
10044
mattbaker@apple.comfc115262018-07-16 20:06:52 +0000100452018-07-16 Matt Baker <mattbaker@apple.com>
10046
10047 Web Inspector: Fix execution highlighting after r233820
10048 https://bugs.webkit.org/show_bug.cgi?id=187703
10049 <rdar://problem/42246167>
10050
10051 Reviewed by Joseph Pecoraro.
10052
10053 * UserInterface/Views/SourceCodeTextEditor.js:
10054 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
10055 * UserInterface/Views/TextEditor.js:
10056 (WI.TextEditor.prototype.currentPositionToOriginalPosition):
10057 (WI.TextEditor.prototype._updateExecutionRangeHighlight):
10058
commit-queue@webkit.org62fe8802018-07-16 18:57:39 +0000100592018-07-16 Aaron Chu <aaron_chu@apple.com>
10060
10061 AX: Audit Tab should have an Audit Manager
10062 https://bugs.webkit.org/show_bug.cgi?id=184071
10063 <rdar://problem/38946364>
10064
10065 Reviewed by Brian Burg.
10066
10067 This implements the AuditManager for the audit feature. This patch revolves
10068 around building out an AuditManager that facilitates an audit. The AuditManager
10069 is responsible for managing and storing AuditReports and AuditTestSuites. It is
10070 also tasked to decide how to run a test -- whether as a test case or as a test
10071 suite. This patch also includes 4 models with which the AuditManager works to
10072 perform an audit and to generate a report. These models include AuditTestCase,
10073 which as a collection is stored inside an AuditTestSuite; and AuditResult,
10074 which, as a collection is stored inside an AuditReport.
10075
10076 * UserInterface/Controllers/AuditManager.js: Added.
10077 (WI.AuditManager):
10078 (WI.AuditManager.prototype.get testSuites):
10079 (WI.AuditManager.prototype.get reports):
10080 (WI.AuditManager.prototype.async.runAuditTestByRepresentedObject):
10081 (WI.AuditManager.prototype.reportForId):
10082 (WI.AuditManager.prototype.removeAllReports):
10083 (WI.AuditManager.prototype.async._runTestCase):
10084 * UserInterface/Main.html:
10085 * UserInterface/Models/AuditReport.js: Added.
10086 (WI.AuditReport):
10087 (WI.AuditReport.prototype.get representedTestCases):
10088 (WI.AuditReport.prototype.get representedTestSuite):
10089 (WI.AuditReport.prototype.get resultsData):
10090 (WI.AuditReport.prototype.get isWritable):
10091 (WI.AuditReport.prototype.get failedCount):
10092 (WI.AuditReport.prototype.addResult):
10093 (WI.AuditReport.prototype.close):
10094 * UserInterface/Models/AuditResult.js: Added.
10095 (WI.AuditResult):
10096 (WI.AuditResult.prototype.get testResult):
10097 (WI.AuditResult.prototype.get name):
10098 (WI.AuditResult.prototype.get logLevel):
10099 (WI.AuditResult.prototype.get failed):
10100 * UserInterface/Models/AuditTestCase.js: Added.
10101 (WI.AuditTestCase.prototype.get id):
10102 (WI.AuditTestCase.prototype.get name):
10103 (WI.AuditTestCase.prototype.get suite):
10104 (WI.AuditTestCase.prototype.get test):
10105 (WI.AuditTestCase.prototype.get setup):
10106 (WI.AuditTestCase.prototype.get tearDown):
10107 (WI.AuditTestCase.prototype.get errorDetails):
10108 (WI.AuditTestCase):
10109 * UserInterface/Models/AuditTestSuite.js: Added.
10110 (WI.AuditTestSuite):
10111 (WI.AuditTestSuite.testCaseDescriptors):
10112 (WI.AuditTestSuite.prototype.get id):
10113 (WI.AuditTestSuite.prototype.get name):
10114 (WI.AuditTestSuite.prototype.get testCases):
10115 (WI.AuditTestSuite.prototype._buildTestCasesFromDescriptors):
10116 * UserInterface/Test.html:
10117
nvasilyev@apple.com470ed7c2018-07-16 16:29:00 +0000101182018-07-16 Nikita Vasilyev <nvasilyev@apple.com>
10119
nvasilyev@apple.comf038b532018-07-16 16:37:34 +000010120 Web Inspector: Dark Mode: Console filter field buttons should be darker
10121 https://bugs.webkit.org/show_bug.cgi?id=187626
10122 <rdar://problem/42142744>
10123
10124 Reviewed by Brian Burg.
10125
10126 * UserInterface/Views/FindBanner.css:
10127 (@media (prefers-dark-interface)):
10128 (.find-banner > button.segmented):
10129 (.find-banner > button.segmented > .glyph):
10130
101312018-07-16 Nikita Vasilyev <nvasilyev@apple.com>
10132
nvasilyev@apple.com470ed7c2018-07-16 16:29:00 +000010133 Web Inspector: Dark Mode: selected item background color is too light
10134 https://bugs.webkit.org/show_bug.cgi?id=187691
10135 <rdar://problem/42225308>
10136
10137 Reviewed by Brian Burg.
10138
10139 * UserInterface/Views/DarkMode.css:
10140 (@media (prefers-dark-interface)):
10141 (:root):
10142 (.tree-outline.dom li.elements-drag-over .selection-area):
10143 (.tree-outline.dom:focus li.selected .selection-area):
10144
ap@apple.com32ffe412018-07-14 23:44:42 +0000101452018-07-14 Kocsen Chung <kocsen_chung@apple.com>
10146
10147 Ensure WebKit stack is ad-hoc signed
10148 https://bugs.webkit.org/show_bug.cgi?id=187667
10149
10150 Reviewed by Alexey Proskuryakov.
10151
10152 * Configurations/Base.xcconfig:
10153
mattbaker@apple.comc0e04c72018-07-13 17:10:28 +0000101542018-07-13 Matt Baker <mattbaker@apple.com>
10155
mattbaker@apple.comf5509302018-07-13 23:11:08 +000010156 Web Inspector: REGRESSION (r195723): Improve support for resources with '\r' and '\r\n' line endings
10157 https://bugs.webkit.org/show_bug.cgi?id=186453
10158 <rdar://problem/39689180>
10159
10160 Reviewed by Joseph Pecoraro.
10161
10162 Now that the frontend no longer uses offsets from the original source
10163 file to calculate positions within CodeMirror, it is possible to support
10164 resources with '\r' and '\r\n' line endings in the editor.
10165
10166 * UserInterface/Views/CodeMirrorEditor.js:
10167 (WI.CodeMirrorEditor.create):
10168 (WI.CodeMirrorEditor):
10169
101702018-07-13 Matt Baker <mattbaker@apple.com>
10171
mattbaker@apple.com75b367c2018-07-13 22:27:30 +000010172 Web Inspector: Basic blocks highlighting should use line/column locations instead of offsets
10173 https://bugs.webkit.org/show_bug.cgi?id=187613
10174 <rdar://problem/42131808>
10175
10176 Reviewed by Joseph Pecoraro.
10177
10178 * UserInterface/Controllers/BasicBlockAnnotator.js:
10179 Basic blocks sent from the backend include offsets into the original
10180 file, rather than line/column locations. In order to translate to positions
10181 within CodeMirror, we need to calculate the original line and column
10182 for each block.
10183
10184 (WI.BasicBlockAnnotator.prototype.insertAnnotations):
10185 (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions.offsetToPosition):
10186 (WI.BasicBlockAnnotator.prototype._calculateBasicBlockPositions):
10187 (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges.):
10188 (WI.BasicBlockAnnotator.prototype._annotateBasicBlockExecutionRanges):
10189 (WI.BasicBlockAnnotator.prototype._highlightTextForBasicBlock):
10190
10191 * UserInterface/Models/SourceCodePosition.js:
10192 (WI.SourceCodePosition.prototype.offsetColumn):
10193
10194 * UserInterface/Views/TextEditor.js:
10195 (WI.TextEditor.prototype.getTextInRange):
10196 (WI.TextEditor.prototype.addStyleToTextRange):
10197 Better encapsulation for CodeMirror positions.
10198
10199 * UserInterface/Workers/Formatter/FormatterUtilities.js:
10200 (get if):
10201 Update String.prototype.lineEndings to support additional line separators.
10202
102032018-07-13 Matt Baker <mattbaker@apple.com>
10204
mattbaker@apple.com0e226d22018-07-13 21:53:14 +000010205 Web Inspector: Execution highlighting in the frontend should be line/column-based
10206 https://bugs.webkit.org/show_bug.cgi?id=187532
10207 <rdar://problem/42035580>
10208
10209 Reviewed by Joseph Pecoraro.
10210
10211 Source code offsets from Esprima should not be used to calculate ranges
10212 in CodeMirror for expression highlighting.
10213
10214 This also fixes a long standing bug when adjusting for the starting
10215 position of an inline script. Previously the start offset from the script
10216 TextRange was used for this purpose, but the value is often incorrect (see
10217 https://bugs.webkit.org/show_bug.cgi?id=187532#c5). By using the starting
10218 line/column instead, we avoid the problem.
10219
10220 * UserInterface/Models/ScriptSyntaxTree.js:
10221 (WI.ScriptSyntaxTree.prototype.containersOfPosition):
10222 (WI.ScriptSyntaxTree.prototype.containersOfOffset): Deleted.
10223
10224 * UserInterface/Models/SourceCodePosition.js:
10225 (WI.SourceCodePosition.prototype.offsetColumn):
10226
10227 * UserInterface/Views/SourceCodeTextEditor.js:
10228 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.toInlineScriptPosition):
10229 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.fromInlineScriptPosition):
10230 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange):
10231 (WI.SourceCodeTextEditor.prototype.textEditorExecutionHighlightRange.convertRangeOffsetsToSourceCodeOffsets): Deleted.
10232
10233 * UserInterface/Views/TextEditor.js:
10234 (WI.TextEditor.prototype._updateExecutionRangeHighlight):
10235
102362018-07-13 Matt Baker <mattbaker@apple.com>
10237
mattbaker@apple.comc0e04c72018-07-13 17:10:28 +000010238 Web Inspector: SourceCodePosition.js missing from Test.html
10239 https://bugs.webkit.org/show_bug.cgi?id=187644
10240
10241 Reviewed by Brian Burg.
10242
10243 * UserInterface/Test.html:
10244
mattbaker@apple.com708a2f02018-07-13 02:06:48 +0000102452018-07-12 Matt Baker <mattbaker@apple.com>
10246
10247 Web Inspector: Type token positioning should use line/column locations from Esprima instead of offsets
10248 https://bugs.webkit.org/show_bug.cgi?id=187612
10249 <rdar://problem/42131910>
10250
10251 Reviewed by Joseph Pecoraro.
10252
10253 * UserInterface/Controllers/TypeTokenAnnotator.js:
10254 (WI.TypeTokenAnnotator.prototype.insertAnnotations):
10255 (WI.TypeTokenAnnotator.prototype._insertTypeToken):
10256 (WI.TypeTokenAnnotator.prototype._insertToken):
10257 Use line/column locations, instead of offsets, from the AST when calculating
10258 token positions for CodeMirror. Once in CodeMirror's string space, we
10259 can safely convert to/from offsets.
10260
10261 * UserInterface/Models/ScriptSyntaxTree.js:
10262 Retrieve line/column locations for AST nodes, in addition to offsets.
10263 Offsets into the original file are still needed for getting type information
10264 from the profiler in the backend.
10265
10266 (WI.ScriptSyntaxTree):
10267 (WI.ScriptSyntaxTree.prototype.filterByRange):
10268 Filter by positions, which can be safely used from CodeMirror, instead of offsets.
10269
10270 (WI.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
10271 (WI.ScriptSyntaxTree.prototype.filterByRange.filterForNodesInRange): Deleted.
10272
10273 * UserInterface/Models/SourceCodePosition.js:
10274 Add convenience methods for comparing line/column positions, and for
10275 converting to the format expected by CodeMirror. SourceCodePosition could
10276 be made to interoperate with CodeMirror by exposing properties `line`
10277 and `ch`, but making the conversion explicit improves code readability.
10278
10279 (WI.SourceCodePosition.prototype.equals):
10280 (WI.SourceCodePosition.prototype.isBefore):
10281 (WI.SourceCodePosition.prototype.isAfter):
10282 (WI.SourceCodePosition.prototype.isWithin):
10283 (WI.SourceCodePosition.prototype.toCodeMirror):
10284 (WI.SourceCodePosition):
10285
10286 * UserInterface/Views/TextEditor.js:
10287 (WI.TextEditor.prototype.visibleRangePositions):
10288 (WI.TextEditor.prototype.originalPositionToCurrentPosition):
10289 (WI.TextEditor.prototype.currentOffsetToCurrentPosition):
10290 (WI.TextEditor.prototype.currentPositionToCurrentOffset):
10291 (WI.TextEditor.prototype.setInlineWidget):
10292
Hironori.Fujii@sony.comc797e682018-07-11 01:03:18 +0000102932018-07-10 Fujii Hironori <Hironori.Fujii@sony.com>
10294
10295 REGRESSION(r229932) Use of uninitialized value in subroutine entry at copy-user-interface-resources.pl
10296 https://bugs.webkit.org/show_bug.cgi?id=187511
10297
10298 Reviewed by Brian Burg.
10299
10300 copy-user-interface-resources.pl output warning messages unless
10301 BUILT_PRODUCTS_DIR and BUILT_PRODUCTS_DIR env vars are defined.
10302
10303 * Scripts/copy-user-interface-resources.pl:
10304 (webInspectorUIAdditionsDir): Added. Return UNDEF if
10305 BUILT_PRODUCTS_DIR and SDKROOT env vars aren't defined.
10306 (combineOrStripResourcesForWebKitAdditions): Check
10307 $webInspectorUIAdditionsDir is defined.
10308
commit-queue@webkit.orgc11a4152018-07-10 20:09:28 +0000103092018-07-10 Ross Kirsling <rkirsling@gmail.com>
10310
10311 Web Inspector: Layers inspector should allow control-dragging to pan the 3D render
10312 https://bugs.webkit.org/show_bug.cgi?id=185109
10313
10314 Reviewed by Matt Baker.
10315
10316 Addressed in the three.js repo itself (https://github.com/mrdoob/three.js/pull/13972),
10317 so this patch simply updates three.js and its OrbitControls module.
10318
10319 * UserInterface/External/three.js/LICENSE:
10320 * UserInterface/External/three.js/three.js:
10321 Update to r94.
10322
10323 * UserInterface/External/three.js/OrbitControls.js:
10324 Update to latest.
10325
10326 * UserInterface/Views/Layers3DContentView.js:
10327 (WI.Layers3DContentView.prototype.initialLayout):
10328 (WI.Layers3DContentView.prototype._restrictPan):
10329 Adapt to recent changes in three.js.
10330
mattbaker@apple.comc3620cb2018-07-10 16:44:45 +0000103312018-07-10 Matt Baker <mattbaker@apple.com>
10332
mattbaker@apple.com6f70cb22018-07-10 19:14:59 +000010333 Web Inspector: Remove unused NavigationSidebarPanel.treeElementAddedOrChanged
10334 https://bugs.webkit.org/show_bug.cgi?id=187508
10335
10336 Reviewed by Joseph Pecoraro.
10337
10338 * UserInterface/Views/NavigationSidebarPanel.js:
10339 (WI.NavigationSidebarPanel.prototype._treeElementAddedOrChanged):
10340 (WI.NavigationSidebarPanel.prototype.treeElementAddedOrChanged): Deleted.
10341
103422018-07-10 Matt Baker <mattbaker@apple.com>
10343
mattbaker@apple.comc3620cb2018-07-10 16:44:45 +000010344 Web Inspector: REGRESSION (r217505): Debugger content view doesn't update when left sidebar is collapsed
10345 https://bugs.webkit.org/show_bug.cgi?id=187482
10346 <rdar://problem/41989190>
10347
10348 Reviewed by Brian Burg.
10349
10350 Subclasses of NavigationSidebarPanel must process tree selection changes
10351 even when collapsed. Sidebar panels perform critical controller tasks
10352 for their tabs, such as updating the view when pausing in the debugger,
10353 and when the hierarchical path component selection changes.
10354
10355 * UserInterface/Views/DebuggerSidebarPanel.js:
10356 (WI.DebuggerSidebarPanel.prototype._treeSelectionDidChange):
10357 * UserInterface/Views/ResourceSidebarPanel.js:
10358 (WI.ResourceSidebarPanel.prototype._treeSelectionDidChange):
10359 * UserInterface/Views/SearchSidebarPanel.js:
10360 (WI.SearchSidebarPanel.prototype._treeSelectionDidChange):
10361 * UserInterface/Views/SourcesSidebarPanel.js:
10362 (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
10363 * UserInterface/Views/StorageSidebarPanel.js:
10364 (WI.StorageSidebarPanel._treeSelectionDidChange):
10365
bburg@apple.com5b907f82018-07-09 20:00:32 +0000103662018-07-09 Brian Burg <bburg@apple.com>
10367
10368 REGRESSION: Web Inspector no longer pauses in internal injected scripts like WDFindNodes.js
10369 https://bugs.webkit.org/show_bug.cgi?id=187350
10370 <rdar://problem/41728249>
10371
10372 Reviewed by Matt Baker.
10373
10374 * UserInterface/Base/Setting.js: Add a new setting to allow pausing in internal scripts.
10375 * UserInterface/Controllers/DebuggerManager.js: Listen to the setting change and toggle
10376 the backend setting accordingly. The default is to not break into internal scripts.
10377
10378 * UserInterface/Views/SettingsTabContentView.js:
10379 (WI.SettingsTabContentView.prototype._createDebugSettingsView):
10380 Expose the new setting in the Debug settings panel.
10381
nvasilyev@apple.com8d50f1a2018-07-07 00:44:29 +0000103822018-07-06 Nikita Vasilyev <nvasilyev@apple.com>
10383
10384 Web Inspector: Dark Mode: resource search field has white text on white background
10385 https://bugs.webkit.org/show_bug.cgi?id=187423
10386
10387 Reviewed by Timothy Hatcher.
10388
10389 Match the colors of sidebar filter fields.
10390
10391 * UserInterface/Views/DarkMode.css:
10392 (@media (prefers-dark-interface)):
10393 (.find-banner > input[type="search"]):
10394
timothy_horton@apple.com553ee992018-07-04 09:06:10 +0000103952018-07-04 Tim Horton <timothy_horton@apple.com>
10396
10397 Introduce PLATFORM(IOSMAC)
10398 https://bugs.webkit.org/show_bug.cgi?id=187315
10399
10400 Reviewed by Dan Bernstein.
10401
10402 * Configurations/Base.xcconfig:
10403
mattbaker@apple.com8508cfe2018-06-28 22:38:41 +0000104042018-06-28 Matt Baker <mattbaker@apple.com>
10405
10406 Web Inspector: REGRESSION (r213000): copy from Search results content view broken
10407 https://bugs.webkit.org/show_bug.cgi?id=187020
10408 <rdar://problem/40928766>
10409
10410 Reviewed by Timothy Hatcher.
10411
10412 Since WI._copy listens for a copy event from the document, it is called
10413 after CodeMirror handles the event and sets clipboard data. If WI._copy
10414 finds a custom copy handler to call, that handler can determine whether
10415 to overwrite the current clipboard data, or leave it alone.
10416
10417 SearchTabContentView's handleCopyEvent method should return early if the
10418 content tree outline doesn't have the focus. This prevents the selection
10419 in the TextEditor from being overwritten, without any special knowledge of
10420 the content browser's current view.
10421
10422 * UserInterface/Views/SearchTabContentView.js:
10423 (WI.SearchTabContentView.prototype.handleCopyEvent):
10424
nvasilyev@apple.comc39d86f2018-06-25 17:34:48 +0000104252018-06-25 Nikita Vasilyev <nvasilyev@apple.com>
10426
nvasilyev@apple.comc8b84c92018-06-26 00:43:32 +000010427 Web Inspector: Dark Mode: Box Model section should have dark background
10428 https://bugs.webkit.org/show_bug.cgi?id=186976
10429
10430 Reviewed by Brian Burg.
10431
10432 Replace all instances of black text on white background with the default text and background colors.
10433
10434 * UserInterface/Views/BoxModelDetailsSectionRow.css:
10435 (@media (prefers-dark-interface)):
10436 (.details-section .row.box-model):
10437 (.details-section .row.box-model .label):
10438 (.details-section .row.box-model :matches(.position, .margin, .border, .padding, .content)):
10439 (.details-section .row.box-model:not(.hovered) :matches(.margin, .border, .padding, .content),):
10440 (.details-section .row.box-model .margin):
10441 (.details-section .row.box-model .border):
10442
104432018-06-25 Nikita Vasilyev <nvasilyev@apple.com>
10444
nvasilyev@apple.comc9265c82018-06-25 17:42:03 +000010445 Web Inspector: Dark Mode: color outline is too dark
10446 https://bugs.webkit.org/show_bug.cgi?id=186975
10447
10448 Reviewed by Brian Burg.
10449
10450 Make the outline lighter than the background.
10451
10452 * UserInterface/Views/DarkMode.css:
10453 (@media (prefers-dark-interface)):
10454 (.hover-menu > svg > :matches(path, rect)):
10455
104562018-06-25 Nikita Vasilyev <nvasilyev@apple.com>
10457
nvasilyev@apple.com15a12fd2018-06-25 17:38:29 +000010458 Web Inspector: Dark Mode: Media query names are unreadable
10459 https://bugs.webkit.org/show_bug.cgi?id=186974
10460
10461 Reviewed by Brian Burg.
10462
10463 Change media query names from dark blue to light blue.
10464
10465 * UserInterface/Views/DarkMode.css:
10466 (@media (prefers-dark-interface)):
10467 (.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):
10468 (.cm-s-default .cm-attribute):
10469
104702018-06-25 Nikita Vasilyev <nvasilyev@apple.com>
10471
nvasilyev@apple.comce7ecbd2018-06-25 17:35:51 +000010472 Web Inspector: Dark Mode: Network headers colors are too dim
10473 https://bugs.webkit.org/show_bug.cgi?id=186985
10474
10475 Reviewed by Brian Burg.
10476
10477 Increasing the luminance of network header colors by increasing lightness and brightness.
10478
10479 * UserInterface/Views/DarkMode.css:
10480 (@media (prefers-dark-interface)):
10481 (:root):
10482
104832018-06-25 Nikita Vasilyev <nvasilyev@apple.com>
10484
nvasilyev@apple.comc39d86f2018-06-25 17:34:48 +000010485 Web Inspector: Dark Mode: Font guideline colors are too bright
10486 https://bugs.webkit.org/show_bug.cgi?id=186986
10487
10488 Reviewed by Brian Burg.
10489
10490 Make the guidelines less distractive from the font glyphs.
10491
10492 * UserInterface/Views/DarkMode.css:
10493 (@media (prefers-dark-interface)):
10494 (.content-view.resource.font .preview > .line):
10495 (.content-view.resource.font .metric.top):
10496 (.content-view.resource.font .metric.baseline):
10497 (.content-view.resource.font .metric.middle):
10498 (.content-view.resource.font .metric.xheight):
10499 (.content-view.resource.font .metric.bottom):
10500
dbates@webkit.org9cdd6072018-06-21 00:08:53 +0000105012018-06-20 Daniel Bates <dabates@apple.com>
10502
10503 Web Inspector: All non-Same-Site cookies are marked as Same-Site Strict in Storage tab
10504 https://bugs.webkit.org/show_bug.cgi?id=186867
10505 <rdar://problem/41175424>
10506
10507 Reviewed by Matt Baker.
10508
10509 Fixes an issue where cookies that do not have a Same-Site policy would be marked up as Same-
10510 Site Strict in Web Inspector's cookie storage content view (under the storage tab).
10511
10512 * UserInterface/Views/CookieStorageContentView.js:
10513 (WI.CookieStorageContentView.prototype._rebuildTable): Only compute the display name if
10514 we cookie.sameSite is non-null and is not WI.Cookie.SameSiteType.None. Moreover, remove
10515 an extraneous call to WI.Cookie.parseSameSiteAttributeValue() as cookie.SameSite represents
10516 the already parsed value (one of the WI.Cookie.SameSiteType-scoped values).
10517
bburg@apple.com64224062018-06-18 21:14:40 +0000105182018-06-18 Brian Burg <bburg@apple.com>
10519
10520 Web Inspector: TypeError: Array.prototype.sort passed bad value in NetworkTableContentView _updateSortAndFilteredEntries
10521 https://bugs.webkit.org/show_bug.cgi?id=186787
10522 <rdar://problem/41175680>
10523
10524 Reviewed by Timothy Hatcher.
10525
10526 * UserInterface/Views/NetworkTableContentView.js:
10527 (WI.NetworkTableContentView.prototype._updateSortAndFilteredEntries):
10528
nvasilyev@apple.com46198bd2018-06-13 21:26:34 +0000105292018-06-13 Nikita Vasilyev <nvasilyev@apple.com>
10530
10531 Web Inspector: open source Dark Mode
10532 https://bugs.webkit.org/show_bug.cgi?id=186606
10533
10534 Reviewed by Timothy Hatcher.
10535
10536 The dark mode is currently only available on macOS Mojave via prefers-dark-interface CSS media query.
10537
10538 * UserInterface/Main.html:
10539 * UserInterface/Views/DarkMode.css: Added.
10540 (@media (prefers-dark-interface)):
10541 (:root):
10542 (body.window-inactive):
10543 (body.window-inactive *):
10544 (#main):
10545 (.tree-outline.dom li.selected .selection-area):
10546 (.tab-bar > .item > .icon):
10547 (.go-to-arrow):
10548 (.resource-link,):
10549 (.expand-list-button):
10550 (:matches(img, canvas).show-grid):
10551 (.formatted-object,):
10552 (.formatted-null,):
10553 (.editing):
10554 (.editing, .editing *):
10555 (.text-editor > .CodeMirror .execution-line):
10556 (.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):
10557 (.details-section > .header):
10558 (.details-section > .header > label):
10559 (.details-section .details-section,):
10560 (.details-section .details-section:not(.collapsed) > .header):
10561 (.details-section > .content > .group > .row.simple > .label):
10562 (.details-section > .content > .group:nth-child(even)):
10563 (.details-section > .content > .group > .row:matches(.empty, .text)):
10564 (.data-grid th):
10565 (.data-grid td .subtitle):
10566 (.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
10567 (body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
10568 (.data-grid tr.editable .cell-content > input):
10569 (.data-grid td.spanning):
10570 (.object-tree,):
10571 (.object-preview .name):
10572 (.object-preview > .size):
10573 (.tab-bar):
10574 (.tab-bar > .item):
10575 (.tab-bar > .item > .title):
10576 (.tab-bar > .item:not(.disabled).selected):
10577 (.tab-bar:not(.animating) > .item:not(.selected):hover):
10578 (.tab-bar > .item > .close):
10579 (body.window-inactive .tab-bar):
10580 (body.window-inactive .tab-bar > .item):
10581 (body.window-inactive .tab-bar > .item.selected):
10582 (body.window-inactive .tab-bar > .item > .title):
10583 (body .toolbar):
10584 (body.window-inactive .toolbar):
10585 (body.latest-mac .toolbar .item.button,):
10586 (body.latest-mac .toolbar .search-bar > input[type="search"]):
10587 (body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
10588 (body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
10589 (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
10590 (body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
10591 (body.latest-mac .toolbar .dashboard-container):
10592 (body.latest-mac .toolbar .item.button:active):
10593 (body.latest-mac.window-inactive .toolbar .item.button,):
10594 (.navigation-bar .item.divider):
10595 (.toolbar .item.button):
10596 (.toolbar .item.button:not(.disabled):active):
10597 (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
10598 (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):
10599 (.toolbar .dashboard.default > .item > div):
10600 (.toolbar .dashboard.default > .item.enabled > div):
10601 (.toolbar .dashboard.default > .item.enabled:hover):
10602 (.toolbar .dashboard.default > .item.enabled:hover > div):
10603 (.toolbar .dashboard.default > .resourcesCount > img,):
10604 (body.latest-mac .toolbar .dashboard .item.button):
10605 (.dashboard-container .advance-arrow):
10606 (.toolbar .dashboard.debugger):
10607 (.dashboard.debugger .navigation-bar .item.button > .glyph):
10608 (.dashboard.debugger > .location .function-name):
10609 (.dashboard.debugger > .location .go-to-link):
10610 (.dashboard.debugger > .divider):
10611 (.popover .edit-breakpoint-popover-content > label.toggle):
10612 (.popover .edit-breakpoint-popover-content > table > tr > th):
10613 (.breakpoint-action-block-body):
10614 (.breakpoint-action-block-body > .description):
10615 (.breakpoint-action-append-button,):
10616 (.popover .xhr-breakpoint-content > .editor-wrapper > .editor):
10617 (.navigation-bar .item.button):
10618 (.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
10619 (.spreadsheet-css-declaration):
10620 (.spreadsheet-css-declaration .selector:focus,):
10621 (.spreadsheet-css-declaration.locked .origin::after):
10622 (.spreadsheet-css-declaration .origin .go-to-link,):
10623 (.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
10624 (.spreadsheet-style-declaration-editor .property.has-warning):
10625 (.spreadsheet-style-declaration-editor .property.has-warning .warning):
10626 (.spreadsheet-css-declaration .media-label):
10627 (.quick-console):
10628 (.syntax-highlighted,):
10629 (.cm-s-default,):
10630 (.CodeMirror .jump-to-symbol-highlight,):
10631 (.console-prompt):
10632 (.completion-suggestions):
10633 (.completion-suggestions-container > .item):
10634 (.CodeMirror-cursor):
10635 (.CodeMirror .CodeMirror-gutters):
10636 (.cm-s-default .cm-link):
10637 (.cm-s-default .cm-m-xml.cm-attribute,):
10638 (.cm-s-default .cm-meta):
10639 (.cm-s-default .cm-variable-3):
10640 (.cm-s-default .cm-builtin):
10641 (.tree-outline .item .subtitle):
10642 (.object-tree-property .getter,):
10643 (.item.object-tree-property.prototype-property):
10644 (.object-tree-property.prototype-property:hover,):
10645 (.object-tree-property .value.error):
10646 (.tree-outline.dom):
10647 (.tree-outline.dom li.selected + ol.children.expanded):
10648 (.tree-outline.dom .shadow):
10649 (.tree-outline.dom li.parent.shadow + ol.children.expanded,):
10650 (.showing-find-banner .tree-outline.dom .search-highlight):
10651 (.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):
10652 (.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
10653 (.spreadsheet-css-declaration.locked):
10654 (.spreadsheet-css-declaration .selector.style-attribute):
10655 (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
10656 (.inline-swatch):
10657 (.spreadsheet-style-panel .section-header):
10658 (.spreadsheet-style-panel .section-header .node-link:hover):
10659 (.computed-style-properties.details-section):
10660 (.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):
10661 (.table,):
10662 (.table > .header > .sortable:active):
10663 (.table > .header > :matches(.sort-ascending, .sort-descending)):
10664 (.table > .header > :matches(.sort-ascending, .sort-descending)::after):
10665 (.scope-bar > li):
10666 (.timeline-overview > .navigation-bar.timelines):
10667 (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
10668 (.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):
10669 (.time-icon .icon):
10670 (.data-grid th:matches(.sort-ascending, .sort-descending)):
10671 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
10672 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
10673 (.content-view.settings .navigation-bar):
10674 (.content-view.settings .navigation-bar .item.radio.button.text-only.selected):
10675 (.new-tab.tab.content-view):
10676 (.filter-bar > input[type="search"]):
10677 (.filter-bar > input[type="search"]::placeholder):
10678 (.filter-bar > input[type="search"]:focus):
10679 (.content-view.resource.image):
10680 (.console-messages):
10681 (.console-item):
10682 (.console-messages:focus .console-item.selected):
10683 (.console-messages:focus .console-item.selected + .console-item):
10684 (.console-session:first-of-type .console-session-header):
10685 (.console-session:not(:first-of-type) .console-session-header):
10686 (.console-messages a):
10687 (.console-messages a:hover):
10688 (.console-messages:focus .console-item.selected::after):
10689 (.console-error-level):
10690 (.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
10691 (.console-warning-level):
10692 (.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
10693 (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
10694 (.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):
10695 (.source-code.text-editor > .CodeMirror .error):
10696 (.source-code.text-editor > .CodeMirror .warning):
10697 (.source-code.text-editor > .CodeMirror .issue-widget):
10698 (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
10699 (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
10700 (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
10701 (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
10702 (.console-message .syntax-highlighted):
10703 (.console-warning-level .console-message-text):
10704 (.console-error-level .console-message-text):
10705 (.console-user-command > .console-message-text):
10706 (.console-message .repeat-count):
10707 (.call-frame .subtitle,):
10708 (.call-frame:hover .subtitle .source-link,):
10709 (.call-frame .separator):
10710 (.quick-console.showing-log):
10711 (.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):
10712 (.network-resource-detail):
10713 (.network-resource-detail .item.close > .glyph):
10714 (.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
10715 (.resource-headers .value):
10716 (.network-table .cell.domain > .lock):
10717 (.resource-sizes > .content .label):
10718 (.popover.waterfall-popover):
10719 (.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
10720 (.resource-timing-breakdown > table > tr > td.label,):
10721 (.resource-timing-breakdown > table hr):
10722 (.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
10723 (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
10724 (.web-socket.content-view .data-grid table.data tr.revealed):
10725 (.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
10726 (.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):
10727 (.item.action:not(.initial-state)::before):
10728 (.tree-outline .item.action.visual:not(.selected, .invalid)):
10729 (.item.action:not(.initial-state) > .icon):
10730 (.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):
10731 (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon,):
10732 (.content-view.canvas > .preview > img,):
10733 (.content-view.canvas-overview):
10734 (.content-view.canvas-overview .content-view.canvas):
10735 (.content-view.canvas-overview .content-view.canvas.is-recording):
10736 (.content-view.canvas-overview .content-view.canvas.is-recording > header):
10737 (.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
10738 (.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
10739 (.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
10740 (.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):
10741 (.content-view.canvas:not(.tab)):
10742 (.content-view:not(.tab).recording):
10743 (.content-view:not(.tab).recording > header > .slider-container):
10744 (.content-view:not(.tab).recording > header > .slider-container > input[type=range]):
10745 (.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):
10746 (.progress-view > .titles > .title):
10747 (.progress-view > .titles > .subtitle):
10748 (.indeterminate-progress-spinner):
10749 (.content-view.shader-program > .text-editor.shader):
10750 (.content-view.shader-program > .text-editor.shader > .type-title):
10751 (.item.shader-program .status > img):
10752 (.open-resource-dialog):
10753 (.open-resource-dialog > .field > input):
10754 (.open-resource-dialog > .field > input::placeholder):
10755 (.open-resource-dialog > .tree-outline .item.selected):
10756 (.open-resource-dialog > .field::before):
10757
mitz@apple.com564e7c32018-06-10 05:18:08 +0000107582018-06-09 Dan Bernstein <mitz@apple.com>
10759
10760 [Xcode] Clean up and modernize some build setting definitions
10761 https://bugs.webkit.org/show_bug.cgi?id=186463
10762
10763 Reviewed by Sam Weinig.
10764
10765 * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
10766 * Configurations/DebugRelease.xcconfig: Ditto.
10767 * Configurations/Version.xcconfig: Ditto.
10768
mattbaker@apple.comc32fab12018-06-05 22:41:00 +0000107692018-06-05 Matt Baker <mattbaker@apple.com>
10770
10771 Web Inspector: Tab picker is briefly visible when TabBar initially shown
10772 https://bugs.webkit.org/show_bug.cgi?id=186317
10773
10774 Reviewed by Joseph Pecoraro.
10775
10776 * UserInterface/Views/TabBar.js:
10777 (WI.TabBar): Picker should be initially hidden.
10778
nvasilyev@apple.comfb7f4912018-06-05 19:07:12 +0000107792018-06-05 Nikita Vasilyev <nvasilyev@apple.com>
10780
10781 Web Inspector: Text in "Add New Class" in auto-capitalizes
10782 https://bugs.webkit.org/show_bug.cgi?id=186311
10783
10784 Reviewed by Matt Baker.
10785
10786 Disable spellcheck to prevent auto-capitalization.
10787
10788 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
10789 (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
10790
mattbaker@apple.come8ffcf92018-06-04 21:49:50 +0000107912018-06-04 Matt Baker <mattbaker@apple.com>
10792
10793 Web Inspector: Cannot copy a link address in Elements tab
10794 https://bugs.webkit.org/show_bug.cgi?id=186281
10795 <rdar://problem/39193355>
10796
10797 Reviewed by Brian Burg.
10798
10799 * UserInterface/Views/ContextMenuUtilities.js:
10800 (WI.appendContextMenuItemsForURL):
10801
dbates@webkit.orgc14788b2018-05-30 23:42:36 +0000108022018-05-30 Daniel Bates <dabates@apple.com>
10803
10804 Web Inspector: Annotate Same-Site cookies
10805 https://bugs.webkit.org/show_bug.cgi?id=184897
10806 <rdar://problem/35178209>
10807
10808 Reviewed by Brian Burg.
10809
10810 Add a new column for the value of the Same-Site cookie attribute to the resource cookie content
10811 view (shown for a resource under the Network tab) and cookie storage content view (shown under
10812 the Storage tab).
10813
10814 The SameSite column in the resource cookie content view reflects the parsing of the Same-Site
10815 attribute from the HTTP response by Web Inspector. This parsing is materially consistent with
10816 the parsing of the SameSite atttribute in CFNetwork. The Same-Site column in the cookie storage
10817 content view reflects the Same-Site cookie policy associated with the cookies provided by the
10818 network stack, if supported. This column will be blank on systems whose network stack does not
10819 support Same-Site cookies (e.g libsoup).
10820
10821 * Localizations/en.lproj/localizedStrings.js:
10822 * UserInterface/Controllers/HARBuilder.js:
10823 (WI.HARBuilder.cookies):
10824 * UserInterface/Models/Cookie.js:
10825 (WI.Cookie):
10826 (WI.Cookie.displayNameForSameSiteType):
10827 (WI.Cookie.parseSameSiteAttributeValue):
10828 (WI.Cookie.parseSetCookieResponseHeader):
10829 * UserInterface/Views/CookieStorageContentView.js:
10830 (WI.CookieStorageContentView.prototype._rebuildTable):
10831 (WI.CookieStorageContentView.prototype._sortDataGrid):
10832 * UserInterface/Views/ResourceCookiesContentView.js:
10833 (WI.ResourceCookiesContentView.prototype.tablePopulateCell):
10834 (WI.ResourceCookiesContentView.prototype._generateSortComparator):
10835 (WI.ResourceCookiesContentView.prototype._refreshResponseCookiesSection):
10836
mattbaker@apple.comf036e0e2018-05-25 16:25:27 +0000108372018-05-25 Matt Baker <mattbaker@apple.com>
10838
10839 Web Inspector: Popover dismissed while attempting to move cursor inside
10840 https://bugs.webkit.org/show_bug.cgi?id=185741
10841 <rdar://problem/40340938>
10842
10843 Reviewed by Joseph Pecoraro.
10844
10845 Hovering a token within the bounds of the current popover should not
10846 show a new popover. This prevents the popover from being dismissed when
10847 the cursor passes over a token under the transparent portion of the
10848 popover frame.
10849
10850 * UserInterface/Views/SourceCodeTextEditor.js:
10851 (WI.SourceCodeTextEditor.prototype._showPopover):
10852
ryanhaddad@apple.com5cce4f02018-05-22 17:21:49 +0000108532018-05-22 Ryan Haddad <ryanhaddad@apple.com>
10854
10855 Unreviewed, rolling out r232052.
10856
10857 Breaks internal builds.
10858
10859 Reverted changeset:
10860
10861 "Use more C++17"
10862 https://bugs.webkit.org/show_bug.cgi?id=185176
10863 https://trac.webkit.org/changeset/232052
10864
utatane.tea@gmail.com24cbfd82018-05-22 06:46:43 +0000108652018-05-21 Yusuke Suzuki <utatane.tea@gmail.com>
10866
10867 Use more C++17
10868 https://bugs.webkit.org/show_bug.cgi?id=185176
10869
10870 Reviewed by JF Bastien.
10871
10872 * Configurations/Base.xcconfig:
10873
webkit@devinrousso.com8ec0dd42018-05-18 21:05:08 +0000108742018-05-18 Devin Rousso <webkit@devinrousso.com>
10875
10876 Web Inspector: Canvas: put `hasVisualEffect` behind an experimental setting
10877 https://bugs.webkit.org/show_bug.cgi?id=185758
10878
10879 Reviewed by Matt Baker.
10880
10881 * Localizations/en.lproj/localizedStrings.js:
10882
10883 * UserInterface/Base/Setting.js:
10884
10885 * UserInterface/Models/RecordingAction.js:
10886 (WI.RecordingAction.prototype.process):
10887
10888 * UserInterface/Views/RecordingActionTreeElement.js:
10889 (WI.RecordingActionTreeElement.prototype.onattach):
10890
10891 * UserInterface/Views/SettingsTabContentView.js:
10892 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
10893
webkit@devinrousso.com21878e262018-05-17 01:37:33 +0000108942018-05-16 Devin Rousso <webkit@devinrousso.com>
10895
10896 Web Inspector: create a navigation item for toggling the overlay rulers/guides
10897 https://bugs.webkit.org/show_bug.cgi?id=185644
10898
10899 Reviewed by Matt Baker.
10900
10901 * Localizations/en.lproj/localizedStrings.js:
10902 * UserInterface/Base/Setting.js:
10903 * UserInterface/Views/DOMTreeContentView.js:
10904 (WI.DOMTreeContentView):
10905 (WI.DOMTreeContentView.prototype.get navigationItems):
10906 (WI.DOMTreeContentView.prototype.closed):
10907 (WI.DOMTreeContentView.prototype._showRulersChanged): Added.
10908 (WI.DOMTreeContentView.prototype._toggleShowRulers): Added.
10909
nvasilyev@apple.comc604e502018-05-15 01:52:26 +0000109102018-05-14 Nikita Vasilyev <nvasilyev@apple.com>
10911
10912 Web Inspector: Canvas: Remove unused --value-visual-highlight CSS variable
10913 https://bugs.webkit.org/show_bug.cgi?id=185636
10914
10915 Reviewed by Matt Baker.
10916
10917 * UserInterface/Views/Variables.css:
10918 (:root):
10919
webkit@devinrousso.com09350d52018-05-14 23:01:25 +0000109202018-05-14 Devin Rousso <webkit@devinrousso.com>
10921
10922 Web Inspector: Canvas tab: don't automatically select a recording when viewing a canvas
10923 https://bugs.webkit.org/show_bug.cgi?id=182950
10924
10925 Reviewed by Matt Baker.
10926
10927 * UserInterface/Views/CanvasSidebarPanel.js:
10928 (WI.CanvasSidebarPanel):
10929 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
10930 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
10931 (WI.CanvasSidebarPanel.prototype._canvasChanged):
10932 (WI.CanvasSidebarPanel.prototype._recordingChanged):
10933 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
10934 Add a "dummy" ScopeBarItem to the recording ScopeBar that is selected whenever a TreeElement
10935 that doesn't correspond to a Recording is selected. This way, the Recording ScopeBar will
10936 become deselected, and the list of actions will disappear. Clicking on the Recording ScopeBar
10937 will show the previously selected Recording.
10938
mattbaker@apple.com1e9de232018-05-09 00:09:41 +0000109392018-05-08 Matt Baker <mattbaker@apple.com>
10940
10941 Web Inspector: Console drawer resizing is broken when console prompt has >1 line of code
10942 https://bugs.webkit.org/show_bug.cgi?id=185369
10943 <rdar://problem/40013202>
10944
10945 Reviewed by Devin Rousso.
10946
10947 Mouse offset calculation should account for the height of the quick console.
10948 The only reason resizing worked with the single-line quick console is that
10949 the offset calculation included the resizer height, which is very close
10950 to that of the single-line quick console (27px and 30px respectively).
10951
10952 * UserInterface/Views/ConsoleDrawer.js:
10953
webkit@devinrousso.comca4600a2018-05-04 23:56:10 +0000109542018-05-04 Devin Rousso <webkit@devinrousso.com>
10955
10956 Web Inspector: simplify the WI.Collection interface
10957 https://bugs.webkit.org/show_bug.cgi?id=185187
10958
10959 Reviewed by Brian Burg.
10960
10961 * UserInterface/Models/Collection.js:
10962 (WI.Collection.prototype.get size): Added.
10963 (WI.Collection.prototype.has): Added.
10964 (WI.Collection.prototype.toJSON):
10965 (WI.Collection.prototype.[Symbol.iterator]): Added.
10966 (WI.Collection.prototype.get items): Deleted.
10967 (WI.Collection.prototype.toArray): Deleted.
10968
10969 * UserInterface/Controllers/CanvasManager.js:
10970 (WI.CanvasManager.prototype._removeCanvas):
10971 * UserInterface/Controllers/DOMDebuggerManager.js:
10972 (WebInspector.DOMDebuggerManager.prototype.get domBreakpoints):
10973 * UserInterface/Models/Frame.js:
10974 (WI.Frame.prototype.removeAllChildFrames):
10975 (WI.Frame.prototype.resourceForURL):
10976 (WI.Frame.prototype.removeAllResources):
10977 * UserInterface/Models/Script.js:
10978 (WI.Script):
10979 * UserInterface/Views/CanvasContentView.js:
10980 (WI.CanvasContentView.prototype.initialLayout):
10981 * UserInterface/Views/CanvasOverviewContentView.js:
10982 (WI.CanvasOverviewContentView.prototype._updateNavigationItems):
10983 * UserInterface/Views/CanvasSidebarPanel.js:
10984 (WI.CanvasSidebarPanel.prototype._recordingRemoved):
10985 (WI.CanvasSidebarPanel.prototype._canvasChanged):
10986 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
10987 * UserInterface/Views/CanvasTabContentView.js:
10988 (WI.CanvasTabContentView.prototype.attached):
10989 (WI.CanvasTabContentView.prototype._addCanvas):
10990 (WI.CanvasTabContentView.prototype._removeCanvas):
10991 * UserInterface/Views/CanvasTreeElement.js:
10992 (WI.CanvasTreeElement.prototype.onpopulate):
10993 * UserInterface/Views/CollectionContentView.js:
10994 (WI.CollectionContentView.prototype.initialLayout):
10995 (WI.CollectionContentView.prototype.attached):
10996 * UserInterface/Views/CookieStorageContentView.js:
10997 (WI.CookieStorageContentView.prototype._filterCookies):
10998 * UserInterface/Views/DebuggerSidebarPanel.js:
10999 (WI.DebuggerSidebarPanel.prototype._addResourcesRecursivelyForFrame):
11000 * UserInterface/Views/FolderizedTreeElement.js:
11001 (WI.FolderizedTreeElement.prototype.updateParentStatus):
11002 (WI.FolderizedTreeElement.prototype._shouldGroupIntoFolders):
11003 * UserInterface/Views/FrameTreeElement.js:
11004 (WI.FrameTreeElement.prototype.onpopulate):
11005 * UserInterface/Views/NavigationSidebarPanel.js:
11006 (WI.NavigationSidebarPanel.prototype.get contentTreeOutlines):
11007 * UserInterface/Views/NetworkTableContentView.js:
11008 (WI.NetworkTableContentView.prototype._populateWithInitialResourcesIfNeeded):
11009 * UserInterface/Views/OpenResourceDialog.js:
11010 (WI.OpenResourceDialog.prototype._addResourcesForFrame):
11011 (WI.OpenResourceDialog.prototype._addResourcesForTarget):
11012 * UserInterface/Views/TreeOutlineGroup.js:
11013 (WI.TreeOutlineGroup.prototype.get selectedTreeElement):
11014 (WI.TreeOutlineGroup.prototype._removeConflictingTreeSelections):
11015 * UserInterface/Views/WorkerTreeElement.js:
11016 (WI.WorkerTreeElement.prototype.onpopulate):
11017
nvasilyev@apple.come298f1e2018-05-04 20:51:47 +0000110182018-05-04 Nikita Vasilyev <nvasilyev@apple.com>
11019
11020 Web Inspector: Styles: Newly added unsupported properties sometimes don't have warnings
11021 https://bugs.webkit.org/show_bug.cgi?id=183097
11022 <rdar://problem/37843816>
11023
11024 Reviewed by Matt Baker.
11025
11026 Update status of properties warnings every time focus moves.
11027
11028 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
11029 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
11030 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
11031 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
11032 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updatePropertiesStatus):
11033 * UserInterface/Views/SpreadsheetStyleProperty.js:
11034 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidBlur):
11035
webkit@devinrousso.com6231c852018-05-04 18:50:30 +0000110362018-05-04 Devin Rousso <webkit@devinrousso.com>
11037
webkit@devinrousso.com8a769162018-05-04 20:29:24 +000011038 Web Inspector: Styles Redesign: ensure that tabbing through the last section wraps back to the first
11039 https://bugs.webkit.org/show_bug.cgi?id=181973
11040
11041 Reviewed by Matt Baker.
11042
11043 Unified delegate functions to start editing previous/next rules into a single function for
11044 simplicity.
11045
11046 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
11047 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
11048
11049 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
11050 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.startEditingRuleSelector):
11051 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetSelectorFieldDidChange):
11052 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingAdjacentRule):
11053 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationEditorStartEditingAdjacentRule): Deleted.
11054
11055 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
11056 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusFirstSection):
11057 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.focusLastSection):
11058 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationSectionStartEditingAdjacentRule):
11059 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingNextRule): Deleted.
11060 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionStartEditingPreviousRule): Deleted.
11061
11062 * UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:
11063 (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusLastPseudoClassCheckbox):
11064 (WI.GeneralStyleDetailsSidebarPanel.prototype.styleDetailsPanelFocusFilterBar):
11065 (WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
11066 (WI.GeneralStyleDetailsSidebarPanel.prototype._handleForcedPseudoClassCheckboxKeydown):
11067 (WI.GeneralStyleDetailsSidebarPanel.prototype._forcedPseudoClassCheckboxChanged):
11068 (WI.GeneralStyleDetailsSidebarPanel.prototype._handleFilterBarInputFieldKeyDown):
11069
11070 Drive-by fix: provide tabbing support for the Computed styles panel.
11071
11072 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
11073 (WI.CSSStyleDeclarationTextEditor.prototype._handleShiftTabKey.switchRule):
11074 (WI.CSSStyleDeclarationTextEditor.prototype._handleTabKey.switchRule):
11075
11076 * UserInterface/Views/ComputedStyleDetailsPanel.js:
11077 (WI.ComputedStyleDetailsPanel.prototype.focusFirstSection):
11078 (WI.ComputedStyleDetailsPanel.prototype.focusLastSection):
11079 (WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule):
11080
110812018-05-04 Devin Rousso <webkit@devinrousso.com>
11082
webkit@devinrousso.com6231c852018-05-04 18:50:30 +000011083 Web Inspector: Canvas tab: Determine isFunction by looking at the prototype
11084 https://bugs.webkit.org/show_bug.cgi?id=184990
11085
11086 Reviewed by Brian Burg.
11087
11088 * UserInterface/Models/RecordingAction.js:
11089 (WI.RecordingAction.isFunctionForType):
11090 (WI.RecordingAction._prototypeForType):
11091 (WI.RecordingAction.prototype.async.swizzle):
11092
webkit@devinrousso.com37642652018-05-01 23:37:59 +0000110932018-05-01 Devin Rousso <webkit@devinrousso.com>
11094
11095 Web Inspector: Canvas tab: determine hasVisibleEffect for all actions immediately after recording is added
11096 https://bugs.webkit.org/show_bug.cgi?id=182995
11097
11098 Reviewed by Matt Baker.
11099
11100 Previously, we'd swizzle the entirety of the `WI.Recording` in one, which would usually
11101 freeze the UI, especially for larger recordings. This patch uses `WI.YieldableTask` to split
11102 the work and allow the rest of the UI to still be usable while `WI.Recording` are processing.
11103 Additionally, since we no longer have to worry about hangs, we can do more work upfront,
11104 such as calculating `hasVisibleEffect` and the current state of 2D canvases.
11105
11106 These changes require that all uses of `WI.Recording` call `process()` before attempting to
11107 use any `frames`/`actions`/`initialState`, as they will have their original payload values
11108 and will have not been swizzled or applied.
11109
11110 * Localizations/en.lproj/localizedStrings.js:
11111
11112 * UserInterface/Models/Recording.js:
11113 (WI.Recording):
11114 (WI.Recording.prototype.process):
11115 (WI.Recording.prototype.createContext): Added.
11116 (WI.Recording.prototype.async yieldableTaskWillProcessItem): Added.
11117 (WI.Recording.prototype.async yieldableTaskDidFinish): Added.
11118
11119 * UserInterface/Models/RecordingAction.js:
11120 (WI.RecordingAction):
11121 (WI.RecordingAction.prototype.process): Added.
11122 (WI.RecordingAction.prototype.async swizzle): Added.
11123 (WI.RecordingAction.prototype.apply):
11124 (WI.RecordingAction.prototype.toJSON):
11125 (WI.RecordingAction.prototype.set state): Deleted.
11126 (WI.RecordingAction.prototype.swizzle): Deleted.
11127 (WI.RecordingAction.prototype.apply.getContent): Deleted.
11128 (WI.RecordingAction.prototype.async _swizzle): Deleted.
11129 * UserInterface/Models/RecordingInitialStateAction.js:
11130 (WI.RecordingInitialStateAction):
11131
11132 * UserInterface/Views/CanvasSidebarPanel.js:
11133 (WI.CanvasSidebarPanel):
11134 (WI.CanvasSidebarPanel.prototype.set action):
11135 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
11136 (WI.CanvasSidebarPanel.prototype._recordingChanged):
11137
11138 * UserInterface/Views/CanvasSidebarPanel.css:
11139 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .indeterminate-progress-spinner):
11140
11141 * UserInterface/Views/RecordingActionTreeElement.js:
11142 (WI.RecordingActionTreeElement):
11143 (WI.RecordingActionTreeElement.prototype.onattach):
11144 (WI.RecordingActionTreeElement.prototype._handleHasVisibleEffectChanged): Deleted.
11145
11146 * UserInterface/Views/RecordingContentView.js:
11147 (WI.RecordingContentView):
11148 (WI.RecordingContentView.prototype.get navigationItems):
11149 (WI.RecordingContentView.prototype.updateActionIndex):
11150 (WI.RecordingContentView.prototype.initialLayout):
11151 (WI.RecordingContentView.prototype._generateContentCanvas2D): Added.
11152 (WI.RecordingContentView.prototype._generateContentCanvasWebGL): Added.
11153 (WI.RecordingContentView.prototype._updateCanvasPath):
11154 (WI.RecordingContentView.prototype._updateProcessProgress): Added.
11155 (WI.RecordingContentView.prototype._handleRecordingProcessedActionSwizzle): Added.
11156 (WI.RecordingContentView.prototype._handleRecordingProcessedActionApply): Added.
11157 (WI.RecordingContentView.supportsCanvasPathDebugging): Deleted.
11158 (WI.RecordingContentView.prototype.async _generateContentCanvas2D): Deleted.
11159 (WI.RecordingContentView.prototype.async _generateContentCanvasWebGL): Deleted.
11160
11161 * UserInterface/Views/RecordingContentView.css:
11162 (.content-view:not(.tab).recording > .preview-container):
11163
11164 * UserInterface/Base/ImageUtilities.js:
11165 (WI.ImageUtilities.supportsCanvasPathDebugging):
11166
jer.noble@apple.com88220e52018-04-26 19:15:20 +0000111672018-04-26 Jer Noble <jer.noble@apple.com>
11168
jer.noble@apple.com63add112018-04-26 23:30:21 +000011169 Unreviewed build fix; fix WebInspectorUI copy resources step after r231063.
11170
11171 * Configurations/Base.xcconfig:
11172
111732018-04-26 Jer Noble <jer.noble@apple.com>
11174
jer.noble@apple.com88220e52018-04-26 19:15:20 +000011175 WK_COCOA_TOUCH all the things.
11176 https://bugs.webkit.org/show_bug.cgi?id=185006
11177
11178 Reviewed by Tim Horton.
11179
11180 * Configurations/WebInspectorUIFramework.xcconfig:
11181
nvasilyev@apple.com3e2330c2018-04-21 17:45:23 +0000111822018-04-21 Nikita Vasilyev <nvasilyev@apple.com>
11183
11184 REGRESSION(r214076): Web Inspector: Timelines load and DOMContentLoaded markers aren't visible
11185 https://bugs.webkit.org/show_bug.cgi?id=184858
11186
11187 Reviewed by Brian Burg.
11188
11189 r214076 changed the color of all markers to light gray.
11190
11191 * UserInterface/Views/TimelineRuler.css:
11192 (.timeline-ruler > .markers > .marker):
11193 (body[dir=ltr] .timeline-ruler > .markers > .marker):
11194 (body[dir=rtl] .timeline-ruler > .markers > .marker):
11195 (.timeline-ruler > .markers > .marker.current-time):
11196 (.timeline-ruler > .markers > .marker.load-event):
11197 (.timeline-ruler > .markers > .marker.dom-content-event):
11198 (.timeline-ruler > .markers > .marker.timestamp):
11199 (body[dir=ltr] .timeline-ruler > .markers > .marker.current-time): Deleted.
11200 (body[dir=rtl] .timeline-ruler > .markers > .marker.current-time): Deleted.
11201
cdumez@apple.com1295fb772018-04-20 02:15:39 +0000112022018-04-19 Chris Dumez <cdumez@apple.com>
11203
11204 Rename JSDOMWindowProxy to JSWindowProxy
11205 https://bugs.webkit.org/show_bug.cgi?id=184797
11206
11207 Reviewed by Sam Weinig.
11208
11209 Rename JSDOMWindowProxy to JSWindowProxy for consistency with WindowProxy.
11210
11211 * UserInterface/Workers/HeapSnapshot/HeapSnapshot.js:
11212 (HeapSnapshot.prototype._isNodeGlobalObject):
11213
ddkilzer@apple.coma005ba42018-04-19 22:53:45 +0000112142018-04-19 David Kilzer <ddkilzer@apple.com>
11215
11216 Enable Objective-C weak references
11217 <https://webkit.org/b/184789>
11218 <rdar://problem/39571716>
11219
11220 Reviewed by Dan Bernstein.
11221
11222 * Configurations/Base.xcconfig:
11223 (CLANG_ENABLE_OBJC_WEAK): Enable.
11224
nvasilyev@apple.com7b6eacf2018-04-17 05:48:41 +0000112252018-04-16 Nikita Vasilyev <nvasilyev@apple.com>
11226
11227 Web Inspector: Can't select and copy text from Network tab popover
11228 https://bugs.webkit.org/show_bug.cgi?id=184606
11229
11230 Reviewed by Matt Baker.
11231
11232 * UserInterface/Views/ResourceTimingBreakdownView.css:
11233 (.waterfall-popover .resource-timing-breakdown):
11234
nvasilyev@apple.com81e09d72018-04-13 01:09:50 +0000112352018-04-12 Nikita Vasilyev <nvasilyev@apple.com>
11236
11237 Web Inspector: Refactoring: move popover styles from JS to CSS
11238 https://bugs.webkit.org/show_bug.cgi?id=184558
11239
11240 Reviewed by Brian Burg.
11241
11242 Introduce several CSS variables to customize popover appearance in CSS
11243 and not JavaScript.
11244
11245 * UserInterface/Views/NetworkTableContentView.js:
11246 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
11247 (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
11248 * UserInterface/Views/Popover.css:
11249 (.popover):
11250 * UserInterface/Views/Popover.js:
11251 (WI.Popover):
11252 (WI.Popover.prototype._drawBackground):
11253 Replace `var` with `let`.
11254
11255 (WI.Popover.prototype.get backgroundStyle): Deleted.
11256 (WI.Popover.prototype.set backgroundStyle): Deleted.
11257 * UserInterface/Views/ResourceTimingBreakdownView.css:
11258 (.popover.waterfall-popover):
11259 (.waterfall-popover-content .resource-timing-breakdown):
11260 (.waterfall-popover .resource-timing-breakdown): Deleted.
11261
11262 * UserInterface/Views/NetworkTableContentView.js:
11263 (WI.NetworkTableContentView.prototype._waterfallPopoverContentForResource):
11264 (WI.NetworkTableContentView.prototype._handleMousedownWaterfall):
11265 * UserInterface/Views/Popover.css:
11266 (.popover):
11267 * UserInterface/Views/Popover.js:
11268 (WI.Popover):
11269 (WI.Popover.prototype._drawBackground):
11270 * UserInterface/Views/ResourceTimingBreakdownView.css:
11271 (.popover.waterfall-popover):
11272 (.waterfall-popover-content .resource-timing-breakdown):
11273
nvasilyev@apple.com6e34c3f2018-04-08 01:33:03 +0000112742018-04-07 Nikita Vasilyev <nvasilyev@apple.com>
11275
11276 Web Inspector: Errors glyph doesn't fully change to blue when active
11277 https://bugs.webkit.org/show_bug.cgi?id=184389
11278
11279 Reviewed by Joseph Pecoraro.
11280
11281 The dot of the exclamation mark was always black.
11282
11283 * UserInterface/Images/Errors.svg:
11284
commit-queue@webkit.org45dd6362018-04-04 00:46:50 +0000112852018-04-03 Aaron Chu <aaron_chu@apple.com>
11286
11287 AX: Add Experimental setting for Accessibility Audit
11288 https://bugs.webkit.org/show_bug.cgi?id=183646
11289 <rdar://problem/38478583>
11290
11291 Reviewed by Brian Burg.
11292
11293 Added experimental feature flag for Accessibility Audit work.
11294
11295 * Localizations/en.lproj/localizedStrings.js:
11296 * UserInterface/Base/Setting.js:
11297 * UserInterface/Views/SettingsTabContentView.js:
11298 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
11299
mattbaker@apple.com83ff4432018-04-02 05:59:28 +0000113002018-04-01 Matt Baker <mattbaker@apple.com>
11301
11302 Web Inspector: Remove dead TabBrowser/TabContentView code
11303 https://bugs.webkit.org/show_bug.cgi?id=184104
11304
11305 Reviewed by Devin Rousso.
11306
11307 * UserInterface/Base/Main.js:
11308 (WI._tryToRestorePendingTabs):
11309 * UserInterface/Views/NewTabContentView.js:
11310 (WI.NewTabContentView.prototype.shown):
11311 (WI.NewTabContentView.prototype.hidden):
11312 * UserInterface/Views/TabBrowser.js:
11313 (WI.TabBrowser.prototype.addTabForContentView):
11314 (WI.TabBrowser.prototype.showTabForContentView):
11315 (WI.TabBrowser._tabBarItemRemoved):
11316 * UserInterface/Views/TabContentView.js:
11317 (WI.TabContentView.prototype.get parentTabBrowser): Deleted.
11318 (WI.TabContentView.prototype.set parentTabBrowser): Deleted.
11319
webkit@devinrousso.com093c0ee2018-03-31 05:14:49 +0000113202018-03-30 Devin Rousso <webkit@devinrousso.com>
11321
11322 Web Inspector: tint all pixels drawn by shader program when hovering ShaderProgramTreeElement
11323 https://bugs.webkit.org/show_bug.cgi?id=175223
11324
11325 Reviewed by Matt Baker.
11326
11327 * UserInterface/Models/ShaderProgram.js:
11328 (WI.ShaderProgram):
11329 (WI.ShaderProgram.prototype.showHighlight):
11330 (WI.ShaderProgram.prototype.hideHighlight):
11331
11332 * UserInterface/Views/ShaderProgramTreeElement.js:
11333 (WI.ShaderProgramTreeElement.prototype.onattach):
11334 (WI.ShaderProgramTreeElement.prototype._handleMouseOver):
11335 (WI.ShaderProgramTreeElement.prototype._handleMouseOut):
11336 Whenever a ShaderProgramTreeElement is hovered, highlight the corresponding shader program
11337 by tinting the pixels it draws via a blend.
11338
timothy@apple.come98b85b2018-03-28 02:51:18 +0000113392018-03-27 Timothy Hatcher <timothy@apple.com>
11340
11341 Web Inspector: Modernize some utility functions
11342 https://bugs.webkit.org/show_bug.cgi?id=184047
11343
11344 Reviewed by Matt Baker.
11345
11346 * UserInterface/Base/Utilities.js:
11347 (Node.prototype.enclosingNodeOrSelfWithClass): Use parentElement instead of parentNode, so we don't need to check for document.
11348 (Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Ditto. Also just toUpperCase input, since nodeName is already upper case.
11349 (String.prototype.escapeCharacters): Use Set and string iteration instead of indexOf and charAt.
11350
nvasilyev@apple.comdae802b2018-03-27 19:30:59 +0000113512018-03-27 Nikita Vasilyev <nvasilyev@apple.com>
11352
11353 Web Inspector: Command-Shift-left/right arrow keys should not switch tabs when focused on color picker text fields
11354 https://bugs.webkit.org/show_bug.cgi?id=184028
11355
11356 Reviewed by Timothy Hatcher.
11357
11358 * UserInterface/Views/EditingSupport.js:
11359 (WI.isEventTargetAnEditableField):
11360 Detect <input type="number"> as an editable text field.
11361
nvasilyev@apple.com716b2d82018-03-24 01:26:05 +0000113622018-03-23 Nikita Vasilyev <nvasilyev@apple.com>
11363
11364 Web Inspector: Styles: don't show checkboxes for invalid properties
11365 https://bugs.webkit.org/show_bug.cgi?id=183951
11366 <rdar://problem/38807602>
11367
11368 Reviewed by Matt Baker.
11369
11370 Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties.
11371
11372 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
11373 (.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,):
11374 (.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted.
11375 Don't show checkboxes for invalid properties but still show them for duplicate properties.
11376
bburg@apple.coma22a4472018-03-23 23:35:03 +0000113772018-03-23 Brian Burg <bburg@apple.com>
11378
11379 Web Inspector: add WebKitAdditions hooks for WebInspectorUI
11380 https://bugs.webkit.org/show_bug.cgi?id=183940
11381 <rdar://problem/38796310>
11382
11383 Reviewed by Timothy Hatcher.
11384
11385 * Scripts/combine-resources.pl:
11386 (debugLog): Added. Leave in the logging I used to debug this.
11387
11388 (concatenateIncludedFilesMatchingPattern):
11389 (stripIncludedFilesMatchingPattern):
11390 (concatenateFiles): Deleted.
11391 This function tried to do too many things. Split it into
11392 two functions, one for stripping includes and one for concatenating
11393 files referenced by includes.
11394
11395 Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes
11396 containing that string are not combined when no input directory is passed
11397 to the script.
11398
11399 * Scripts/copy-user-interface-resources.pl:
11400 WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT,
11401 depending on the build style. Just try them in order and use the first
11402 one that exists. WebInspectorUI files are in their own directory, so
11403 we can assume there are files to process if that directory exists.
11404
11405 Copy Main.html to derived sources before doing any processing on it.
11406 This makes all combining phases have the same --input-html argument.
11407
11408 (debugLog): Added. Leave in the logging I used to debug this.
11409
11410 (combineOrStripResourcesForWebKitAdditions):
11411 (stripResourcesForWebKitAdditions):
11412 (combineResourcesForWebKitAdditions):
11413 Determine if WebKitAdditions exists and whether there are any
11414 resources for WebInspectorUI present that need to be processed.
11415
11416 * UserInterface/Main.html:
11417 Add stub .js and .css WebKitAdditions files. We can add more later
11418 if it makes sense but this is good enough to validate the build machinery.
11419
nvasilyev@apple.com60460032018-03-23 21:35:34 +0000114202018-03-23 Nikita Vasilyev <nvasilyev@apple.com>
11421
11422 Web Inspector: Styles Redesign: flashing when switching between nodes
11423 https://bugs.webkit.org/show_bug.cgi?id=179291
11424 <rdar://problem/35352660>
11425
11426 Reviewed by Matt Baker.
11427
11428 Flashing was happening because the layout was a two-step process:
11429 1. Append empty sections.
11430 2. Layout everything inside of the section on requestAnimationFrame.
11431
11432 SpreadsheetRulesStyleDetailsPanel was converted to use layout method,
11433 so both steps happen on requestAnimationFrame.
11434
11435 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
11436 (WI.SpreadsheetRulesStyleDetailsPanel):
11437 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
11438 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
11439 The removed lines from the refresh method moved to the layout method without any changes.
11440
nvasilyev@apple.com70cbb092018-03-23 01:00:43 +0000114412018-03-22 Nikita Vasilyev <nvasilyev@apple.com>
11442
11443 Uncaught Exception: TypeError: this._textEditor.toggleUnexecutedCodeHighlights().then is not a function
11444 https://bugs.webkit.org/show_bug.cgi?id=181912
11445 <rdar://problem/36700022>
11446
11447 Reviewed by Matt Baker.
11448
11449 The uncaught exception was caused by returning `false` instead of a promise object.
11450 This patch only fixes the exception. Further enhancements should be done in <https://webkit.org/b/183887>.
11451
11452 * UserInterface/Views/SourceCodeTextEditor.js:
11453 (WI.SourceCodeTextEditor.prototype.toggleTypeAnnotations):
11454 (WI.SourceCodeTextEditor.prototype.toggleUnexecutedCodeHighlights):
11455
nvasilyev@apple.comf064a5c2018-03-21 04:47:45 +0000114562018-03-20 Nikita Vasilyev <nvasilyev@apple.com>
11457
11458 Web Inspector: Styles: Loses focus when editing a property while page is being loaded
11459 https://bugs.webkit.org/show_bug.cgi?id=182619
11460 <rdar://problem/37363185>
11461
11462 Reviewed by Matt Baker.
11463
11464 Adding or removing a stylesheet causes SpreadsheetRulesStyleDetailsPanel to refresh, triggering a layout
11465 of all SpreadsheetCSSStyleDeclarationSection child views. This resets the focus, selection, and
11466 auto-completion state.
11467
11468 This patch prevents SpreadsheetCSSStyleDeclarationSection from performing a layout when a property is being edited.
11469
11470 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
11471 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
11472 Allow re-layout after creating a blank CSS property and pasting CSS code.
11473 - _pendingAddBlankPropertyIndexOffset is a number after pasting CSS rules.
11474 - _propertyPendingStartEditing is a property model after creating a new property.
11475
webkit@devinrousso.com34e47452018-03-21 03:40:17 +0000114762018-03-20 Devin Rousso <webkit@devinrousso.com>
11477
11478 Web Inspector: Session dividers are not added when Console tab is not visible
11479 https://bugs.webkit.org/show_bug.cgi?id=168622
11480
11481 Reviewed by Matt Baker.
11482
11483 Restructure `_pendingMessages` to be a `Map [ConsoleSession, ConsoleMessageView]`. Instead
11484 of rendering to the `_currentConsoleGroup`, we now render to the saved `ConsoleSession`.
11485 Also ensure that `_pendingMessages` is cleared when navigating and "Preserve Log" is off.
11486
11487 * UserInterface/Controllers/JavaScriptLogViewController.js:
11488 (WI.JavaScriptLogViewController):
11489 (WI.JavaScriptLogViewController.prototype.startNewSession):
11490 (WI.JavaScriptLogViewController.prototype.consolePromptHistoryDidChange):
11491 (WI.JavaScriptLogViewController.prototype._appendConsoleMessageView):
11492 (WI.JavaScriptLogViewController.prototype.renderPendingMessages):
11493 (WI.JavaScriptLogViewController.prototype.get prompt): Deleted.
11494 (WI.JavaScriptLogViewController.prototype.get currentConsoleGroup): Deleted.
11495
nvasilyev@apple.com44e91b72018-03-20 08:22:03 +0000114962018-03-20 Nikita Vasilyev <nvasilyev@apple.com>
11497
11498 Web Inspector: Can't add a new class by editing class attribute in DOM outline
11499 https://bugs.webkit.org/show_bug.cgi?id=180890
11500
11501 Reviewed by Ryosuke Niwa.
11502
11503 Typing "my-foo my-bar" creates a single "my-foo\xA0my-bar" class name because
11504 contentEditable-based attribute editor sometimes inserts non-breaking space characters (\xA0).
11505
11506 Replace all non-breaking space characters with the regular space characters when
11507 commiting attribute change.
11508
11509 * UserInterface/Views/DOMTreeElement.js:
11510
nvasilyev@apple.com248ab7c2018-03-16 23:43:41 +0000115112018-03-16 Nikita Vasilyev <nvasilyev@apple.com>
11512
11513 Web Inspector: Elements: "Force Print Media Styles" should not persist across Web Inspector sessions
11514 https://bugs.webkit.org/show_bug.cgi?id=183708
11515 <rdar://problem/36452183>
11516
11517 Reviewed by Matt Baker.
11518
11519 * UserInterface/Base/Main.js:
11520 (WI.loaded):
11521 * UserInterface/Views/DOMTreeContentView.js:
11522 (WI.DOMTreeContentView):
11523 (WI.DOMTreeContentView.prototype._showPrintStylesChanged):
11524 (WI.DOMTreeContentView.prototype._togglePrintStyles):
11525 (WI.DOMTreeContentView.prototype._showPrintStylesSettingChanged): Deleted.
11526 (WI.DOMTreeContentView.prototype._togglePrintStylesSetting): Deleted.
11527
webkit@devinrousso.comca9b6312018-03-15 05:54:53 +0000115282018-03-14 Devin Rousso <webkit@devinrousso.com>
11529
11530 Web Inspector: Canvas: a recording initiated by the user should be shown immediately on completion
11531 https://bugs.webkit.org/show_bug.cgi?id=183647
11532 <rdar://problem/38479187>
11533
11534 Reviewed by Matt Baker.
11535
11536 When recordings are initiated via `console.record`, we don't want to automatically show the
11537 recording after it's payload is sent to the frontend. We determine whether a recording came
11538 from the console by comparing the recording's associated canvas with the current value of
11539 `_recordingCanvas`. Previously, when stopping a recording, we would always null the value,
11540 which meant that all non-single-frame recordings (single-frame recordings are stopped by
11541 the agent after the first paint or tick after an action is performed) would be categorized
11542 as coming from the console, since `_recordingCanvas` would be null by the time the frontend
11543 recieved the payload.
11544
11545 This patch changes it so that the nulling of `_recordingCanvas` in `stopRecording` is only
11546 done if the agent command errors. It was already the case that `_recordingCanvas` was nulled
11547 in `stopRecording`, so this patch just prevents it from being nulled too early.
11548
11549 * UserInterface/Controllers/CanvasManager.js:
11550 (WI.CanvasManager.prototype.stopRecording):
11551
jond@apple.comc123fc32018-03-12 19:35:00 +0000115522018-03-12 Jon Davis <jond@apple.com>
11553
11554 Web Inspector: Remove redundant tooltips
11555 https://bugs.webkit.org/show_bug.cgi?id=183099
11556
11557 Reviewed by Matt Baker.
11558
11559 * Localizations/en.lproj/localizedStrings.js:
11560 * UserInterface/Base/Main.js:
11561 (WI.contentLoaded):
11562 Instantiate ConsoleDrawer so the keyboard shortcuts for FindBanner are available.
11563
11564 * UserInterface/Views/BreakpointTreeElement.js:
11565 (WI.BreakpointTreeElement):
11566 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11567
11568 * UserInterface/Views/ButtonNavigationItem.js:
11569 (WI.ButtonNavigationItem):
11570 Only show tooltips when the button style is an image.
11571
11572 * UserInterface/Views/ConsoleDrawer.js:
11573 (WI.ConsoleDrawer):
11574 (WI.ConsoleDrawer.prototype.toggleButtonShortcutTooltip):
11575 Added helper to set the toggle button keyboard shortcut tooltip.
11576
11577 * UserInterface/Views/DOMBreakpointTreeElement.js:
11578 (WI.DOMBreakpointTreeElement):
11579 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11580
11581 * UserInterface/Views/DOMNodeTreeElement.js:
11582 (WI.DOMNodeTreeElement):
11583 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11584
11585 * UserInterface/Views/FindBanner.js:
11586 (WI.FindBanner):
11587 * UserInterface/Views/HierarchicalPathComponent.js:
11588 (WI.HierarchicalPathComponent):
11589 (WI.HierarchicalPathComponent.prototype.get tooltip):
11590 (WI.HierarchicalPathComponent.prototype.set tooltip):
11591 (WI.HierarchicalPathComponent.prototype.get hideTooltip):
11592 (WI.HierarchicalPathComponent.prototype.set hideTooltip):
11593 (WI.HierarchicalPathComponent.prototype._updateElementTitleAndText):
11594 Add tooltip management features to manage tooltips separately of the displayName,
11595 and provide a behavior to hide tooltips while retaining the tooltip data.
11596
11597 * UserInterface/Views/HierarchicalPathNavigationItem.js:
11598 (WI.HierarchicalPathNavigationItem.prototype.updateLayout):
11599 Hide tooltips when fully visible, show tooltips for collapsed items.
11600
11601 * UserInterface/Views/PinnedTabBarItem.js:
11602 (WI.PinnedTabBarItem.prototype.titleDidChange):
11603 Set tooltips for pinned tab bar items.
11604
11605 * UserInterface/Views/QuickConsole.js:
11606 (WI.QuickConsole):
11607 Set the ConsoleDrawer toggle button tooltip after the keyboard shortcut is registered.
11608
11609 * UserInterface/Views/StorageTreeElement.js:
11610 (WI.StorageTreeElement):
11611 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11612
11613 * UserInterface/Views/TabBarItem.js:
11614 (WI.TabBarItem.prototype.get title):
11615 (WI.TabBarItem.prototype.set title):
11616 (WI.TabBarItem.prototype.titleDidChange):
11617 (WI.TabBarItem):
11618 Add title property management with an overridable titleDidChange handler for
11619 setting tooltips when needed.
11620
11621 * UserInterface/Views/TimelineTreeElement.js:
11622 (WI.TimelineTreeElement):
11623 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11624
11625 * UserInterface/Views/ToggleButtonNavigationItem.js:
11626 (WI.ToggleButtonNavigationItem.prototype.set defaultToolTip):
11627 Added a setter for manging the default tooltip of a toggle button.
11628
11629 * UserInterface/Views/XHRBreakpointTreeElement.js:
11630 (WI.XHRBreakpointTreeElement):
11631 Suppress tooltips by setting the tooltipHandledSeprately flag with no custom handler.
11632
nvasilyev@apple.comcf2bf4d2018-03-10 01:24:24 +0000116332018-03-09 Nikita Vasilyev <nvasilyev@apple.com>
11634
11635 Web Inspector: Sources: Open all resources in Sources tab instead of Resources/Debugger
11636 https://bugs.webkit.org/show_bug.cgi?id=183317
11637 <rdar://problem/38108455>
11638
11639 Reviewed by Matt Baker.
11640
11641 * Localizations/en.lproj/localizedStrings.js:
11642 * UserInterface/Base/Main.js:
11643 * UserInterface/Views/ContextMenuUtilities.js:
11644 (WI.appendContextMenuItemsForURL):
11645 Introduce preferredTabType option instead of listing ignoreResourcesTab, ignoreDebuggerTab, ignoreSearchTab, and ignoreNetworkTab.
11646 The only correct outcome of selecting "Reveal in Sources Tab" context menu is to open Sources tab, not any other tab.
11647
11648 * UserInterface/Views/SourceCodeTextEditor.js:
11649 (WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):
11650 * UserInterface/Views/TabBrowser.js:
11651 (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
11652
nvasilyev@apple.comb2dd5972018-03-09 01:32:51 +0000116532018-03-08 Nikita Vasilyev <nvasilyev@apple.com>
11654
11655 Web Inspector: Sources: add SourcesTabContentView and SourceSidebarPanel classes
11656 https://bugs.webkit.org/show_bug.cgi?id=183316
11657 <rdar://problem/38107639>
11658
11659 Reviewed by Matt Baker.
11660
11661 Add Sources tab and sidebar panel, which are copies of the corresponding Resources classes.
11662 The Sources tab is shown when it's enabled in the experimental settings. This patch doesn't
11663 remove existing Resources and Debugger tabs.
11664
11665 * UserInterface/Base/Main.js:
11666 (WI.contentLoaded):
11667 * UserInterface/Main.html:
11668 * UserInterface/Views/SourcesSidebarPanel.css: Added.
11669 (.sidebar > .panel.navigation.sources > .content):
11670 (.sidebar > .panel.navigation.sources > .navigation-bar):
11671 * UserInterface/Views/SourcesSidebarPanel.js: Added.
11672 (WI.SourcesSidebarPanel):
11673 (WI.SourcesSidebarPanel.shouldPlaceResourcesAtTopLevel):
11674 (WI.SourcesSidebarPanel.prototype.get minimumWidth):
11675 (WI.SourcesSidebarPanel.prototype.closed):
11676 (WI.SourcesSidebarPanel.prototype.showDefaultContentView):
11677 (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.isAncestor):
11678 (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject.getParent):
11679 (WI.SourcesSidebarPanel.prototype.treeElementForRepresentedObject):
11680 (WI.SourcesSidebarPanel.prototype.initialLayout):
11681 (WI.SourcesSidebarPanel.prototype.hasCustomFilters):
11682 (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
11683 (WI.SourcesSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
11684 (WI.SourcesSidebarPanel.prototype._mainResourceDidChange):
11685 (WI.SourcesSidebarPanel.prototype._mainFrameDidChange):
11686 (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange.delayedWork):
11687 (WI.SourcesSidebarPanel.prototype._mainFrameMainResourceDidChange):
11688 (WI.SourcesSidebarPanel.prototype._scriptWasAdded):
11689 (WI.SourcesSidebarPanel.prototype._addScript):
11690 (WI.SourcesSidebarPanel.prototype._scriptWasRemoved):
11691 (WI.SourcesSidebarPanel.prototype._scriptsCleared):
11692 (WI.SourcesSidebarPanel.prototype._styleSheetAdded):
11693 (WI.SourcesSidebarPanel.prototype._addTargetWithMainResource):
11694 (WI.SourcesSidebarPanel.prototype._targetRemoved):
11695 (WI.SourcesSidebarPanel.prototype._treeSelectionDidChange):
11696 (WI.SourcesSidebarPanel.prototype._compareTreeElements):
11697 (WI.SourcesSidebarPanel.prototype._extraDomainsActivated):
11698 (WI.SourcesSidebarPanel.prototype._scopeBarSelectionDidChange):
11699 * UserInterface/Views/SourcesTabContentView.js: Added.
11700 (WI.SourcesTabContentView):
11701 (WI.SourcesTabContentView.tabInfo):
11702 (WI.SourcesTabContentView.isTabAllowed):
11703 (WI.SourcesTabContentView.prototype.get type):
11704 (WI.SourcesTabContentView.prototype.get supportsSplitContentBrowser):
11705 (WI.SourcesTabContentView.prototype.canShowRepresentedObject):
11706
webkit@devinrousso.comd457ef42018-03-07 23:09:00 +0000117072018-03-07 Devin Rousso <webkit@devinrousso.com>
11708
11709 Web Inspector: Canvas tab: ensure that the Recording TreeOutline has a specified height for virtualization
11710 https://bugs.webkit.org/show_bug.cgi?id=183015
11711
11712 Reviewed by Matt Baker.
11713
11714 * UserInterface/Views/CanvasSidebarPanel.js:
11715 (WI.CanvasSidebarPanel):
11716
11717 * UserInterface/Views/CanvasSidebarPanel.css:
11718 (.sidebar > .panel.navigation.canvas > .content):
11719 (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
11720 (.sidebar > .panel.navigation.canvas.has-recordings > .content > .recording-content):
11721 (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
11722 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar): Deleted.
11723 (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas): Deleted.
11724
11725 * UserInterface/Views/TreeElement.js:
11726 (WI.TreeElement.prototype._detach):
11727
webkit@devinrousso.com0263b9a2018-02-26 23:52:09 +0000117282018-02-26 Devin Rousso <webkit@devinrousso.com>
11729
11730 Web Inspector: Canvas Tab: Scroll into view / Inspect element if Canvas has DOM node
11731 https://bugs.webkit.org/show_bug.cgi?id=181769
11732
11733 Reviewed by Matt Baker.
11734
11735 * Localizations/en.lproj/localizedStrings.js:
11736
11737 * UserInterface/Images/Markup.svg: Added.
11738
11739 * UserInterface/Views/CanvasContentView.js:
11740 (WI.CanvasContentView):
11741 (WI.CanvasContentView.prototype.initialLayout):
11742 (WI.CanvasContentView.prototype._canvasElementButtonClicked):
11743
mattbaker@apple.com6b1a54a2018-02-20 02:04:30 +0000117442018-02-19 Matt Baker <mattbaker@apple.com>
11745
11746 Web Inspector: Canvas tab: hide navigation sidebar when viewing the overview
11747 https://bugs.webkit.org/show_bug.cgi?id=182597
11748 <rdar://problem/37341564>
11749
11750 Reviewed by Devin Rousso.
11751
11752 Support showing/hiding the navigation sidebar panel based on the current
11753 represented object. Individual TabContentViews can opt-in to this behavior,
11754 by overriding TabContentView.prototype.managesNavigationSidebarPanel.
11755
11756 * UserInterface/Views/CanvasSidebarPanel.js:
11757 (WI.CanvasSidebarPanel.prototype.canShowRepresentedObject):
11758 * UserInterface/Views/CanvasTabContentView.js:
11759 (WI.CanvasTabContentView.prototype.get managesNavigationSidebarPanel):
11760 Hide the Canvas navigation sidebar when viewing the overview.
11761
11762 * UserInterface/Views/ContentBrowserTabContentView.js:
11763 (WI.ContentBrowserTabContentView):
11764 (WI.ContentBrowserTabContentView.prototype.showNavigationSidebarPanel):
11765 (WI.ContentBrowserTabContentView.prototype._navigationSidebarCollapsedStateDidChange):
11766 (WI.ContentBrowserTabContentView.prototype._contentBrowserCurrentRepresentedObjectsDidChange):
11767
11768 * UserInterface/Views/NavigationSidebarPanel.js:
11769 (WI.NavigationSidebarPanel.prototype.canShowRepresentedObject):
11770 Provide default implementation that just defers to the TabContentView.
11771 This exists so that a NavigationSidebarPanel that implements canShowRepresentedObject
11772 will have a meaningful default to fall back on.
11773
11774 * UserInterface/Views/TabBrowser.js:
11775 (WI.TabBrowser.prototype._sidebarCollapsedStateDidChange):
11776 (WI.TabBrowser.prototype._showNavigationSidebarPanelForTabContentView):
11777
11778 * UserInterface/Views/TabContentView.js:
11779 (WI.TabContentView.prototype.get managesNavigationSidebarPanel):
11780
mattbaker@apple.com50344de2018-02-16 20:59:55 +0000117812018-02-16 Matt Baker <mattbaker@apple.com>
11782
mattbaker@apple.comedefb682018-02-16 22:06:01 +000011783 Web Inspector: TabBar redesign: remove top-level search field and pin the Search tab
11784 https://bugs.webkit.org/show_bug.cgi?id=182353
11785 <rdar://problem/37088644>
11786
11787 Reviewed by Devin Rousso.
11788
11789 * Localizations/en.lproj/localizedStrings.js:
11790
11791 * UserInterface/Base/Main.js:
11792 (WI.contentLoaded):
11793 Create Search UI based on experimental setting. When the new TabBar is
11794 enabled, the Search tab is a pinned tab. Since it is also saveable, it
11795 needs to be added to the TabBrowser (the browser adds the item to the bar).
11796
11797 When restoring saved tabs, make an additional check to prevent a tab
11798 from being added twice. This can occur now that the Search tab is pinned.
11799
11800 * UserInterface/Images/Search.svg:
11801 Update art to better match Safari/macOS. Slightly increase the radius of
11802 the lens, and shorten the length of the handle.
11803
11804 * UserInterface/Views/GoToLineDialog.css:
11805 (.go-to-line-dialog > div::before):
11806 Update styles for new Search icon.
11807
11808 * UserInterface/Views/LegacyTabBar.js:
11809 (WI.LegacyTabBar.prototype.get saveableTabCount):
11810 Backported new TabBar method which is called by TabBrowser.
11811
11812 * UserInterface/Views/OpenResourceDialog.css:
11813 (.open-resource-dialog > .field::before):
11814 Update styles for new Search icon.
11815
11816 * UserInterface/Views/PinnedTabBarItem.js:
11817 (WI.PinnedTabBarItem.prototype.fromTabInfo):
11818 Match GeneralTabBarItem.fromTabInfo.
11819
11820 * UserInterface/Views/SearchTabContentView.js:
11821 (WI.SearchTabContentView):
11822 (WI.SearchTabContentView.tabInfo):
11823 New image (magnifying glass without border) when new TabBar is enabled.
11824
11825 * UserInterface/Views/SettingsTabContentView.js:
11826 (WI.SettingsTabContentView):
11827
11828 * UserInterface/Views/TabBar.js:
11829 (WI.TabBar):
11830 Move creation of the Settings item out of TabBar. The TabBar should
11831 only be concerned with managing tabs.
11832
11833 (WI.TabBar.prototype.get saveableTabCount):
11834 (WI.TabBar.prototype._handleContextMenu):
11835 (WI.TabBar.prototype.get normalNonEphemeralTabCount): Deleted.
11836 Now that the Search tab is pinned, there aren't any normal tabs that
11837 are also ephemeral. For the LegacyTabBar, both the Search and New Tab
11838 tabs are still in this category.
11839
11840 * UserInterface/Views/TabBrowser.js:
11841 (WI.TabBrowser.prototype.addTabForContentView):
11842 (WI.TabBrowser.prototype.closeTabForContentView):
11843 (WI.TabBrowser.prototype._tabBarItemSelected):
11844 (WI.TabBrowser._tabBarItemRemoved):
11845 Recent tab list should be validated against the list of saveable tabs,
11846 since the Search tab is no longer a normal tab (a GeneralTabBarItem),
11847 but is still persisted across Inspector sessions.
11848
118492018-02-16 Matt Baker <mattbaker@apple.com>
11850
mattbaker@apple.com50344de2018-02-16 20:59:55 +000011851 Web Inspector: TabBar redesign: TabBarItem close button is incorrectly positioned
11852 https://bugs.webkit.org/show_bug.cgi?id=182844
11853 <rdar://problem/37586749>
11854
11855 Reviewed by Timothy Hatcher.
11856
11857 * UserInterface/Views/GeneralTabBarItem.js:
11858 (WI.GeneralTabBarItem.prototype.set title):
11859 Insert the title before the last flexible space item.
11860
11861 * UserInterface/Views/TabBar.css:
11862 (.tab-bar > .item):
11863 (.tab-bar > .item > .close):
11864 (.tab-bar > .item > .flex-space):
11865 (.tab-bar > .item.ephemeral > .flex-space:last-child):
11866 (.tab-bar.collapsed > .item):
11867 (.tab-bar.collapsed > .item > .flex-space):
11868 (.tab-bar.collapsed > .item > .close):
11869 (.tab-bar.collapsed > .item:hover > .close):
11870 (.tab-bar.collapsed > .item.ephemeral:hover > .icon):
11871 (.tab-bar > .item:hover > .close): Deleted.
11872 (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon): Deleted.
11873
11874 * UserInterface/Views/TabBarItem.js:
11875 (WI.TabBarItem):
11876 Restore flexible space items before and after the icon.
11877
nvasilyev@apple.com0eb9f1a2018-02-14 22:45:50 +0000118782018-02-14 Nikita Vasilyev <nvasilyev@apple.com>
11879
11880 Web Inspector: Styles: completion popover doesn't hide when switching panels
11881 https://bugs.webkit.org/show_bug.cgi?id=182464
11882 <rdar://problem/37202763>
11883
11884 Reviewed by Timothy Hatcher.
11885
11886 Save the position of the anchor, an element the popover is shown for, and hide the completion popover
11887 when the position changes.
11888
11889 * UserInterface/Views/CompletionSuggestionsView.js:
11890 (WI.CompletionSuggestionsView.prototype.showUntilAnchorMoves):
11891 When the popover is visible, check every 200ms if the anchor moved.
11892
11893 (WI.CompletionSuggestionsView.prototype.hide):
11894 * UserInterface/Views/SpreadsheetTextField.js:
11895 (WI.SpreadsheetTextField.prototype._updateCompletions):
11896 (WI.SpreadsheetTextField.prototype._getCaretRect):
11897 getBoundingClientRect returns {x: 0, y: 0} when it can't determine node's position.
11898 This happens when a node isn't attached to DOM, attached to DOM but not visible, and
11899 a number of odd cases.
11900
mattbaker@apple.com9ae2c002018-02-14 20:17:30 +0000119012018-02-14 Matt Baker <mattbaker@apple.com>
11902
11903 Web Inspector: TabBar redesign: only show allowed tabs in the available tabs context menu
11904 https://bugs.webkit.org/show_bug.cgi?id=182721
11905 <rdar://problem/37479019>
11906
11907 Reviewed by Timothy Hatcher.
11908
11909 In addition to only including allowed tabs in the TabBar context menu,
11910 perform a sanity check when setting the selected tab item, since the
11911 serialized selection index could refer to a tab that is no longer allowed.
11912
11913 * UserInterface/Views/LegacyTabBar.js:
11914 (WI.LegacyTabBar.prototype.set selectedTabBarItem):
11915 (WI.LegacyTabBar.prototype._handleContextMenu):
11916
11917 * UserInterface/Views/TabBar.js:
11918 (WI.TabBar.prototype.set selectedTabBarItem):
11919 (WI.TabBar.prototype._handleContextMenu):
11920
mattbaker@apple.com2df6e952018-02-09 20:40:10 +0000119212018-02-09 Matt Baker <mattbaker@apple.com>
11922
mattbaker@apple.com87a77562018-02-10 06:15:46 +000011923 Web Inspector: Canvas tab: tree selection abruptly changes when selecting a recording frame
11924 https://bugs.webkit.org/show_bug.cgi?id=182667
11925 <rdar://problem/37412639>
11926
11927 Reviewed by Devin Rousso.
11928
11929 * UserInterface/Views/CanvasSidebarPanel.css:
11930 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .navigation-bar):
11931 (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
11932 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.recording > .icon):
11933 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .icon):
11934 (.sidebar > .panel.navigation.canvas > .content > .recording-content > .tree-outline .item.folder-icon > .status):
11935 (.sidebar > .panel.navigation.canvas > .content > .navigation-bar): Deleted.
11936 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon): Deleted.
11937 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon): Deleted.
11938 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status): Deleted.
11939 Style changes for the additional DOM element required to virtualize the recording tree outline.
11940
11941 * UserInterface/Views/CanvasSidebarPanel.js:
11942 (WI.CanvasSidebarPanel):
11943 In order to be virtualized, the tree must be the only child of its parent.
11944
11945 (WI.CanvasSidebarPanel.prototype.set action):
11946 Ensure that a frame tree element isn't deselected when the last action
11947 in the frame becomes selected in the RecordingContentView.
11948
11949 (WI.CanvasSidebarPanel.prototype.shown):
11950 Refresh the sidebar, as represented objects may have changed while hidden.
11951
11952 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
11953 Unset the recording when no valid represented objects are found, to
11954 prevent a stale recording tree from being shown when viewing the overview.
11955
11956 (WI.CanvasSidebarPanel.prototype._canvasChanged):
11957 (WI.CanvasSidebarPanel.prototype._recordingChanged):
11958 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
11959 Moved toggling of the "has-recordings" style to _canvasChanged, since
11960 the navigation bar should be hidden when no canvas exists.
11961
11962 * UserInterface/Views/CollectionContentView.js:
11963 (WI.CollectionContentView.prototype.addContentViewForItem):
11964 (WI.CollectionContentView.prototype.removeContentViewForItem):
11965 Drive by fixes for child view visible state.
11966
11967 * UserInterface/Views/TreeOutline.css:
11968 (.tree-outline:not(.large):matches(:focus, .force-focus) .item.selected .status .indeterminate-progress-spinner):
11969 Make spinner easier to see against the selection background color.
11970
119712018-02-09 Matt Baker <mattbaker@apple.com>
11972
mattbaker@apple.com2df6e952018-02-09 20:40:10 +000011973 Web Inspector: Object.shallowEqual always fails when comparing array property values
11974 https://bugs.webkit.org/show_bug.cgi?id=182634
11975 <rdar://problem/37374639>
11976
11977 Reviewed by Devin Rousso.
11978
11979 Object.shallowEqual should use Array.shallowEqual when comparing property
11980 values, since strictly comparing objects/arrays is only true if both
11981 operands reference the same Object.
11982
11983 * UserInterface/Base/Utilities.js:
11984 (value):
11985
mattbaker@apple.comb8adaba2018-02-09 00:52:28 +0000119862018-02-08 Matt Baker <mattbaker@apple.com>
11987
11988 Web Inspector: add listing of Canvases/Programs/Recordings to the NavigationSidebar
11989 https://bugs.webkit.org/show_bug.cgi?id=178744
11990 <rdar://problem/35374379>
11991
11992 Reviewed by Devin Rousso.
11993
11994 * Localizations/en.lproj/localizedStrings.js:
11995
11996 * UserInterface/Images/Canvas2D.svg:
11997 * UserInterface/Images/Canvas3D.svg:
11998 * UserInterface/Images/Recording.svg:
11999 Update canvas icons to be monochrome. Simplified the recording icon.
12000
12001 * UserInterface/Main.html:
12002
12003 * UserInterface/Models/RecordingAction.js:
12004 (WI.RecordingAction.prototype.get state):
12005 (WI.RecordingAction.prototype.set state):
12006 Allow (2D) snapshot state to be associated with the action. Used by
12007 RecordingActionDetailsSidebarPanel to retrieve the snapshot state.
12008
12009 * UserInterface/Views/CanvasContentView.css:
12010 (.content-view.canvas:not(.tab)):
12011 (.content-view.canvas:not(.tab) > .progress): Deleted.
12012 (.content-view.canvas:not(.tab) > .progress > .frame-count): Deleted.
12013
12014 * UserInterface/Views/CanvasContentView.js:
12015 (WI.CanvasContentView):
12016 (WI.CanvasContentView.prototype.get navigationItems):
12017 (WI.CanvasContentView.prototype.layout):
12018 (WI.CanvasContentView.prototype.shown):
12019 (WI.CanvasContentView.prototype._recordingStarted):
12020 (WI.CanvasContentView.prototype._recordingProgress):
12021 (WI.CanvasContentView.prototype._recordingStopped):
12022 (WI.CanvasContentView.prototype._updateRecordNavigationItem):
12023 (WI.CanvasContentView.prototype._updateProgressView):
12024 Replace progress UI with a reusable ProgressView class.
12025 When in the overview, clicking the CanvasContentView shows a dedicated
12026 CanvasContentView for inspecting shaders and recordings. This behavior
12027 is controlled by CollectionContentView, so we need to prevent it when
12028 clicking inside the header and footer elements, which contain clickable UI.
12029
12030 * UserInterface/Views/CanvasDetailsSidebarPanel.js:
12031 (WI.CanvasDetailsSidebarPanel.prototype.inspect):
12032
12033 * UserInterface/Views/CanvasOverviewContentView.css:
12034 (.content-view.canvas-overview .content-view.canvas):
12035 (.content-view.canvas-overview .content-view.canvas.is-recording):
12036 (.content-view.canvas-overview .content-view.canvas > :matches(header, footer)):
12037 (.content-view.canvas-overview .content-view.canvas > header):
12038 (.content-view.canvas-overview .content-view.canvas.is-recording > header):
12039 (.content-view.canvas-overview .content-view.canvas > header > .navigation-bar):
12040 (.content-view.canvas-overview .content-view.canvas:matches(:hover, .is-recording) > header > .navigation-bar):
12041 (.content-view.canvas-overview .content-view.canvas.is-recording > .progress-view,):
12042 (.content-view.canvas-overview .content-view.canvas.is-recording > .preview):
12043 (.content-view.canvas-overview .content-view.canvas > :matches(header, .progress, .preview, footer)): Deleted.
12044 (.content-view.canvas-overview .content-view.canvas.selected > :matches(.progress, .preview, footer),): Deleted.
12045 (.content-view.canvas-overview .content-view.canvas:not(:hover, .is-recording, .selected) > header > .navigation-bar): Deleted.
12046 (.content-view.canvas-overview .content-view.canvas > :matches(.progress, .preview)): Deleted.
12047 (.content-view.canvas-overview .content-view.canvas > .preview): Deleted.
12048 (.content-view.canvas-overview .content-view.canvas > .progress ~ .preview): Deleted.
12049 Clean up styles, and remove selection styles as canvases are no longer selectable in the overview.
12050
12051 * UserInterface/Views/CanvasOverviewContentView.js:
12052 (WI.CanvasOverviewContentView):
12053 (WI.CanvasOverviewContentView.prototype.get navigationItems):
12054 (WI.CanvasOverviewContentView.prototype.attached):
12055 (WI.CanvasOverviewContentView.prototype.detached):
12056 (WI.CanvasOverviewContentView.prototype.get selectionPathComponents): Deleted.
12057 (WI.CanvasOverviewContentView.prototype._changeSelectedItemVertically): Deleted.
12058 (WI.CanvasOverviewContentView.prototype._changeSelectedItemHorizontally): Deleted.
12059 (WI.CanvasOverviewContentView.prototype._selectionPathComponentsChanged): Deleted.
12060 (WI.CanvasOverviewContentView.prototype._handleUp): Deleted.
12061 (WI.CanvasOverviewContentView.prototype._handleRight): Deleted.
12062 (WI.CanvasOverviewContentView.prototype._handleDown): Deleted.
12063 (WI.CanvasOverviewContentView.prototype._handleLeft): Deleted.
12064 (WI.CanvasOverviewContentView.prototype._handleSpace): Deleted.
12065 (WI.CanvasOverviewContentView.prototype._supplementalRepresentedObjectsDidChange): Deleted.
12066 Disable canvas selection. Remove logic for supplemental represented objects,
12067 path components, and selection keyboard shortcuts.
12068
12069 * UserInterface/Views/CanvasSidebarPanel.css: Added.
12070 (.sidebar > .panel.navigation.canvas > .content):
12071 (.sidebar > .panel.navigation.canvas > .navigation-bar > .item.record-start-stop.disabled):
12072 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.canvas-2d .icon):
12073 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.canvas.webgl .icon):
12074 (.sidebar > .panel.navigation.canvas > .content > .navigation-bar):
12075 (.sidebar > .panel.navigation.canvas.has-recordings > .content > .tree-outline.canvas):
12076 (.sidebar > .panel.navigation.canvas:not(.has-recordings) > .filter-bar,):
12077 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.recording > .icon):
12078 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.shader-program > .icon):
12079 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .icon):
12080 (.sidebar > .panel.navigation.canvas > .content > .tree-outline .item.folder-icon > .status):
12081
12082 * UserInterface/Views/CanvasSidebarPanel.js: Added.
12083 (WI.CanvasSidebarPanel):
12084 (WI.CanvasSidebarPanel.prototype.get canvas):
12085 (WI.CanvasSidebarPanel.prototype.set canvas):
12086 (WI.CanvasSidebarPanel.prototype.set recording):
12087 (WI.CanvasSidebarPanel.prototype.set action):
12088 (WI.CanvasSidebarPanel.prototype.shown):
12089 (WI.CanvasSidebarPanel.prototype.hidden):
12090 (WI.CanvasSidebarPanel.prototype.hasCustomFilters):
12091 (WI.CanvasSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
12092 (WI.CanvasSidebarPanel.prototype.initialLayout):
12093 (WI.CanvasSidebarPanel.prototype._recordingAdded):
12094 (WI.CanvasSidebarPanel.prototype._recordingRemoved):
12095 (WI.CanvasSidebarPanel.prototype._scopeBarSelectionChanged):
12096 (WI.CanvasSidebarPanel.prototype._toggleRecording):
12097 (WI.CanvasSidebarPanel.prototype._currentRepresentedObjectsDidChange):
12098 (WI.CanvasSidebarPanel.prototype._treeOutlineSelectionDidChange):
12099 (WI.CanvasSidebarPanel.prototype._canvasChanged):
12100 (WI.CanvasSidebarPanel.prototype._recordingChanged):
12101 (WI.CanvasSidebarPanel.prototype._updateRecordNavigationItem):
12102 (WI.CanvasSidebarPanel.prototype._updateRecordingScopeBar):
12103 Add new navigation sidebar, split into two sections. The upper section
12104 contains a tree with a single element for the current canvas, and child
12105 elements for any shader programs. The maximum height of this section is 50%
12106 of the sidebar's height. The lower section contains a tree for the selected
12107 recording, and a scope bar for choosing between recordings.
12108
12109 * UserInterface/Views/CanvasTabContentView.css:
12110 (.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
12111 (.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon):
12112 (.content-view.tab.canvas .navigation-bar > .item .canvas.webgl .icon):
12113 (.content-view.tab.canvas .navigation-bar > .item .shader-program > .icon):
12114 (.content-view.tab.canvas .navigation-bar > .item > .hierarchical-path-component > .icon): Deleted.
12115 (.content-view.tab.canvas .navigation-bar > .item .canvas .icon): Deleted.
12116
12117 * UserInterface/Views/CanvasTabContentView.js:
12118 (WI.CanvasTabContentView):
12119 (WI.CanvasTabContentView.prototype.canShowRepresentedObject):
12120 (WI.CanvasTabContentView.prototype.attached):
12121 (WI.CanvasTabContentView.prototype._addCanvas):
12122 (WI.CanvasTabContentView.prototype._removeCanvas):
12123 (WI.CanvasTabContentView.prototype._canvasTreeOutlineSelectionDidChange):
12124 (WI.CanvasTabContentView.prototype._recordingAdded):
12125 (WI.CanvasTabContentView.prototype._handleSpace):
12126 (WI.CanvasTabContentView.prototype.showRepresentedObject): Deleted.
12127 (WI.CanvasTabContentView.prototype._navigationSidebarTreeOutlineSelectionChanged): Deleted.
12128 (WI.CanvasTabContentView.prototype._recordingActionIndexChanged): Deleted.
12129 (WI.CanvasTabContentView.prototype._updateActionIndex): Deleted.
12130 The canvas tab now maintains a tree outline of all canvases, with an
12131 "Overview" element as the root. The Overview element is always the first
12132 item of content browser's hierarchical path.
12133
12134 * UserInterface/Views/CanvasTreeElement.js:
12135 (WI.CanvasTreeElement.createRecordingTreeElement):
12136 (WI.CanvasTreeElement):
12137 (WI.CanvasTreeElement.prototype.onattach):
12138 (WI.CanvasTreeElement.prototype.onpopulate):
12139 (WI.CanvasTreeElement.prototype._updateStatus):
12140 (WI.CanvasTreeElement.prototype.ondetach): Deleted.
12141 Make it possible to not show recordings under the Canvas element.
12142 Create `isRecording` status element (spinner).
12143
12144 * UserInterface/Views/CollectionContentView.js:
12145 (WI.CollectionContentView.prototype.shown):
12146 (WI.CollectionContentView.prototype.hidden):
12147 Child ContentViews need to be updated when the collection's visibility changes.
12148
12149 * UserInterface/Views/ContentView.js:
12150 (WI.ContentView.isViewable):
12151
12152 * UserInterface/Views/ProgressView.css: Added.
12153 (.progress-view):
12154 (.progress-view > .titles):
12155 (.progress-view > .titles > .title):
12156 (.progress-view > .titles > .subtitle):
12157 (.progress-view > .titles > .subtitle::before):
12158 (.progress-view > .indeterminate-progress-spinner):
12159
12160 * UserInterface/Views/ProgressView.js: Added.
12161 (WI.ProgressView):
12162 (WI.ProgressView.prototype.get title):
12163 (WI.ProgressView.prototype.set title):
12164 (WI.ProgressView.prototype.get subtitle):
12165 (WI.ProgressView.prototype.set subtitle):
12166 (WI.ProgressView.prototype.get visible):
12167 (WI.ProgressView.prototype.set visible):
12168 (WI.ProgressView.prototype.initialLayout):
12169 (WI.ProgressView.prototype._updateTitles):
12170 New view class (not a ContentView) for showing a generic progress message,
12171 with a title, subtitle, and progress spinner.
12172
12173 * UserInterface/Views/RecordingContentView.css:
12174 (.content-view:not(.tab).recording > .preview-container):
12175 Remove unnecessary styles.
12176
12177 * UserInterface/Views/RecordingContentView.js:
12178 (WI.RecordingContentView):
12179 (WI.RecordingContentView.prototype.get navigationItems):
12180 (WI.RecordingContentView.prototype.get supplementalRepresentedObjects):
12181 (WI.RecordingContentView.prototype.updateActionIndex):
12182 (WI.RecordingContentView.prototype.get saveData):
12183 (WI.RecordingContentView.prototype._exportRecording):
12184 Relocate the recording export logic and UI.
12185 (WI.RecordingContentView.prototype.async._generateContentCanvas2D):
12186 (WI.RecordingContentView.prototype.async._generateContentCanvasWebGL):
12187 (WI.RecordingContentView.prototype._sliderChanged):
12188 Refactor logic for notifying the rest of the UI of changes to the action slider.
12189 The selected action is now exposed as a supplemental represented object, and a
12190 corresponding SupplementalRepresentedObjectsDidChange event.
12191
12192 * UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
12193 (WI.RecordingStateDetailsSidebarPanel.prototype.inspect):
12194 (WI.RecordingStateDetailsSidebarPanel.prototype.set action):
12195 (WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
12196 (WI.RecordingStateDetailsSidebarPanel):
12197 (WI.RecordingStateDetailsSidebarPanel.prototype.updateAction): Deleted.
12198
12199 * UserInterface/Views/RecordingTraceDetailsSidebarPanel.js:
12200 (WI.RecordingTraceDetailsSidebarPanel.prototype.inspect):
12201 (WI.RecordingTraceDetailsSidebarPanel.prototype.set action):
12202 (WI.RecordingTraceDetailsSidebarPanel):
12203 (WI.RecordingTraceDetailsSidebarPanel.prototype.updateAction): Deleted.
12204 Now that the selected action is exposed to the UI as a supplemental
12205 represented object, details sidebars can be more decoupled from the
12206 canvas tab, and be notified of changes to the selection via `inspect()`.
12207
12208 * UserInterface/Views/ResourceIcons.css:
12209 (.canvas > .icon): Deleted.
12210 (.shader-program .icon): Deleted.
12211
nvasilyev@apple.comc3a927d2018-02-08 23:18:28 +0000122122018-02-08 Nikita Vasilyev <nvasilyev@apple.com>
12213
12214 Web Inspector: Styles: Typing value and quickly moving focus away may display outdated value in UI
12215 https://bugs.webkit.org/show_bug.cgi?id=182588
12216 <rdar://problem/37332161>
12217
12218 Reviewed by Matt Baker.
12219
12220 CSSProperty models were updated with a 250ms delay. Quickly adding a blank property after modifying
12221 an existing property could result in outdated values being shown.
12222
12223 This patch removes the 250ms delay.
12224
12225 * UserInterface/Views/SpreadsheetStyleProperty.js:
12226 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidChange):
12227
mattbaker@apple.com029ef7a2018-02-08 00:58:25 +0000122282018-02-07 Matt Baker <mattbaker@apple.com>
12229
12230 Web Inspector: replace isAncestor with Node.contains() in LegacyTabBar
12231 https://bugs.webkit.org/show_bug.cgi?id=182586
12232
12233 Reviewed by Timothy Hatcher.
12234
12235 * UserInterface/Views/LegacyTabBar.js:
12236
nvasilyev@apple.com92717732018-02-07 19:01:16 +0000122372018-02-07 Nikita Vasilyev <nvasilyev@apple.com>
12238
12239 Web Inspector: Styles: completion popover doesn't hide when switching panels
12240 https://bugs.webkit.org/show_bug.cgi?id=182464
12241 <rdar://problem/37202763>
12242
12243 Reviewed by Timothy Hatcher.
12244
12245 Hide completion popover by triggering blur event on the focused text field.
12246 Removing text fields from the DOM tree would hide the completion popovers as well,
12247 but switching sidebar panels doesn't remove them from the DOM.
12248
12249 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12250 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.hidden):
12251 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
12252 (WI.SpreadsheetCSSStyleDeclarationSection.prototype.hidden):
12253 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
12254 (WI.SpreadsheetRulesStyleDetailsPanel.prototype.hidden):
12255 * UserInterface/Views/SpreadsheetStyleProperty.js:
12256 (WI.SpreadsheetStyleProperty.prototype.hidden):
12257
webkit@devinrousso.come1775ce2018-02-07 03:20:01 +0000122582018-02-06 Devin Rousso <webkit@devinrousso.com>
12259
webkit@devinrousso.com7f34f522018-02-07 03:27:00 +000012260 Web Inspector: Replace isAncestor and isDescendant with native DOM contains method
12261 https://bugs.webkit.org/show_bug.cgi?id=182069
12262
12263 Reviewed by Brian Burg.
12264
12265 * UserInterface/Base/Main.js:
12266 (WI.restoreFocusFromElement):
12267 (WI._mouseDown):
12268 (WI._focusedContentBrowser):
12269 (WI._focusedContentView):
12270 * UserInterface/Base/Utilities.js:
12271 (Node.prototype.traverseNextNode):
12272 (Node.prototype.isAncestor): Deleted.
12273 (Node.prototype.isDescendant): Deleted.
12274 (Node.prototype.isSelfOrAncestor): Deleted.
12275 (Node.prototype.isSelfOrDescendant): Deleted.
12276 * UserInterface/Views/BoxModelDetailsSectionRow.js:
12277 (WI.BoxModelDetailsSectionRow.prototype._handleKeyDown):
12278 * UserInterface/Views/CSSStyleDeclarationSection.js:
12279 (WI.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
12280 * UserInterface/Views/DOMTreeOutline.js:
12281 (WI.DOMTreeOutline.prototype._onmouseout):
12282 * UserInterface/Views/DetailsSection.js:
12283 (WI.DetailsSection.prototype._headerElementClicked):
12284 * UserInterface/Views/EditingSupport.js:
12285 (WI.incrementElementValue):
12286 * UserInterface/Views/LogContentView.js:
12287 (WI.LogContentView.prototype._handleContextMenuEvent):
12288 * UserInterface/Views/ShaderProgramTreeElement.js:
12289 (WI.ShaderProgramTreeElement.prototype.selectOnMouseDown):
12290 * UserInterface/Views/SoftContextMenu.js:
12291 (WI.SoftContextMenu.prototype._menuItemMouseOut):
12292 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12293 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
12294 * UserInterface/Views/TabBar.js:
12295 (WI.TabBar.prototype.insertTabBarItem):
12296
122972018-02-06 Devin Rousso <webkit@devinrousso.com>
12298
webkit@devinrousso.come1775ce2018-02-07 03:20:01 +000012299 Web Inspector: Elements tab should have "Jump to Layer" functionality
12300 https://bugs.webkit.org/show_bug.cgi?id=181800
12301
12302 Reviewed by Joseph Pecoraro.
12303
12304 * Localizations/en.lproj/localizedStrings.js:
12305
12306 * UserInterface/Base/Main.js:
12307 (WI.isShowingElementsTab):
12308 (WI.showLayersTab):
12309 (WI.isShowingLayersTab):
12310
12311 * UserInterface/Views/ContextMenuUtilities.js:
12312 (WI.appendContextMenuItemsForDOMNode):
12313
12314 * UserInterface/Views/LayersTabContentView.js:
12315 (WI.LayersTabContentView.prototype.selectLayerForNode):
12316
12317 * UserInterface/Views/Layers3DContentView.js:
12318 (WI.Layers3DContentView):
12319 (WI.Layers3DContentView.prototype.selectLayerForNode):
12320 (WI.Layers3DContentView.prototype.layout):
12321
12322 * UserInterface/Views/LayerDetailsSidebarPanel.js:
12323 (WI.LayerDetailsSidebarPanel):
12324 (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
12325 (WI.LayerDetailsSidebarPanel.prototype._updateDataGrid):
12326
nvasilyev@apple.coma9e56da2018-02-07 03:05:54 +0000123272018-02-06 Nikita Vasilyev <nvasilyev@apple.com>
12328
12329 Web Inspector: Rename String.prototype.trimEnd to avoid conflicts with native trimEnd
12330 https://bugs.webkit.org/show_bug.cgi?id=182545
12331
12332 Reviewed by Brian Burg.
12333
12334 Rename:
12335 - trimEnd to truncateEnd
12336 - trimMiddle to truncateMiddle
12337
12338 * UserInterface/Base/Utilities.js:
12339 (String.prototype.trimMiddle): Deleted.
12340 (String.prototype.trimEnd): Deleted.
12341 (String.prototype.truncateMiddle): Added.
12342 (String.prototype.truncateEnd): Added.
12343 Use strict mode. Scrict mode allows `this` to be a primitive (a string, in our case).
12344 In non-strict mode, `this` is always an object. Without the strict mode,
12345 "a".truncateEnd(42) !== "a", because truncateEnd returns a string object.
12346
12347 * UserInterface/Views/DOMTreeElement.js:
12348 (WI.DOMTreeElement.prototype._buildAttributeDOM):
12349 * UserInterface/Views/DOMTreeElementPathComponent.js:
12350 (WI.DOMTreeElementPathComponent):
12351 * UserInterface/Views/SearchResultTreeElement.js:
12352 Remove an obvious comment.
12353
12354 (WI.SearchResultTreeElement.truncateAndHighlightTitle):
12355 * UserInterface/Views/SpreadsheetStyleProperty.js:
12356 (WI.SpreadsheetStyleProperty.prototype._renderValue):
12357
nvasilyev@apple.com2b126eb2018-02-05 22:37:51 +0000123582018-02-05 Nikita Vasilyev <nvasilyev@apple.com>
12359
12360 Web Inspector: Add an experimental setting to enable Sources tab
12361 https://bugs.webkit.org/show_bug.cgi?id=182461
12362
12363 Reviewed by Brian Burg.
12364
12365 This patch only adds a setting. It doesn't add the Sources tab.
12366
12367 * Localizations/en.lproj/localizedStrings.js:
12368 * UserInterface/Base/Setting.js:
12369 * UserInterface/Views/SettingsTabContentView.js:
12370
webkit@devinrousso.comdb33a6a2018-02-02 22:52:56 +0000123712018-02-02 Devin Rousso <webkit@devinrousso.com>
12372
12373 Web Inspector: Styles Redesign: Pasting multiple properties should create properties instead of a bad property
12374 https://bugs.webkit.org/show_bug.cgi?id=179622
12375 <rdar://problem/35511170>
12376
12377 Reviewed by Matt Baker.
12378
12379 * UserInterface/Views/SpreadsheetStyleProperty.js:
12380 (WI.SpreadsheetStyleProperty.prototype._remove):
12381 (WI.SpreadsheetStyleProperty.prototype._update):
12382 (WI.SpreadsheetStyleProperty.prototype.spreadsheetTextFieldDidCommit):
12383 (WI.SpreadsheetStyleProperty.prototype._handleNamePaste):
12384 When the user pastes into the name field, parse the text for a list of name-value pairs and
12385 replace the property being edited with the text of those pairs.
12386
12387 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12388 (WI.SpreadsheetCSSStyleDeclarationEditor):
12389 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
12390 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.addBlankProperty):
12391 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):
12392 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyAddBlankPropertySoon):
12393 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
12394 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
12395 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved): Deleted.
12396 Calling `addBlankProperty` will trigger a layout on the next frame, but that might be before
12397 the CSSAgent has had a chance to finish refreshing, so we need a way to defer the creation
12398 of a new property until after we have finished the next layout (which is after the refresh).
12399 Drive-by: fix naming of some delegate functions.
12400
12401 * UserInterface/Models/CSSProperty.js:
12402 (WI.CSSProperty.prototype.replaceWithText):
12403 Provide a way for replacing the property with new text.
12404
mattbaker@apple.com0ea61b62018-02-02 21:04:52 +0000124052018-02-02 Matt Baker <mattbaker@apple.com>
12406
12407 Web Inspector: TabBar redesign: remove New Tab button and add experimental feature flag
12408 https://bugs.webkit.org/show_bug.cgi?id=182342
12409 <rdar://problem/37078662>
12410
12411 Reviewed by Devin Rousso.
12412
12413 This patch adds a new experimental setting group, "User Interface", with
12414 a single setting, "Enable New TabBar". When enabled, the New Tab button is
12415 no longer available in the top-level TabBar. The 'open tabs' context menu
12416 no longer allows the last non-ephemeral open tab to be closed (unchecked).
12417
12418 * Localizations/en.lproj/localizedStrings.js:
12419
12420 * UserInterface/Base/Main.js:
12421 (WI.contentLoaded):
12422 (WI._tryToRestorePendingTabs):
12423 Retain legacy behavior behind experimental feature setting.
12424 (WI.isNewTabWithTypeAllowed):
12425
12426 * UserInterface/Base/Setting.js:
12427 * UserInterface/Main.html:
12428
12429 * UserInterface/Views/CanvasTabContentView.js:
12430 (WI.CanvasTabContentView):
12431 * UserInterface/Views/ConsoleTabContentView.js:
12432 (WI.ConsoleTabContentView):
12433 * UserInterface/Views/DebuggerTabContentView.js:
12434 (WI.DebuggerTabContentView):
12435 * UserInterface/Views/ElementsTabContentView.js:
12436 (WI.ElementsTabContentView):
12437
12438 * UserInterface/Views/GeneralTabBarItem.js:
12439 (WI.GeneralTabBarItem):
12440 (WI.GeneralTabBarItem.prototype.fromTabInfo):
12441 (WI.GeneralTabBarItem.prototype.get isEphemeral):
12442 (WI.GeneralTabBarItem.fromTabContentViewConstructor): Deleted.
12443
12444 * UserInterface/Views/LayersTabContentView.js:
12445 (WI.LayersTabContentView):
12446
12447 * UserInterface/Views/LegacyTabBar.js: Copied from Source/WebInspectorUI/UserInterface/Views/TabBar.js.
12448 (WI.LegacyTabBar):
12449 (WI.LegacyTabBar.prototype.get newTabTabBarItem):
12450 (WI.LegacyTabBar.prototype.updateNewTabTabBarItemState):
12451 (WI.LegacyTabBar.prototype.addTabBarItem):
12452 (WI.LegacyTabBar.prototype.insertTabBarItem.animateTabs):
12453 (WI.LegacyTabBar.prototype.insertTabBarItem.removeStyles):
12454 (WI.LegacyTabBar.prototype.insertTabBarItem):
12455 (WI.LegacyTabBar.prototype.removeTabBarItem.animateTabs):
12456 (WI.LegacyTabBar.prototype.removeTabBarItem.removeStyles):
12457 (WI.LegacyTabBar.prototype.removeTabBarItem):
12458 (WI.LegacyTabBar.prototype.selectPreviousTab):
12459 (WI.LegacyTabBar.prototype.selectNextTab):
12460 (WI.LegacyTabBar.prototype.get selectedTabBarItem):
12461 (WI.LegacyTabBar.prototype.set selectedTabBarItem):
12462 (WI.LegacyTabBar.prototype.get tabBarItems):
12463 (WI.LegacyTabBar.prototype.get normalTabCount):
12464 (WI.LegacyTabBar.prototype.layout.forceItemHidden):
12465 (WI.LegacyTabBar.prototype.layout):
12466 (WI.LegacyTabBar.prototype._tabBarItemsFromLeftToRight):
12467 (WI.LegacyTabBar.prototype._findTabBarItem):
12468 (WI.LegacyTabBar.prototype._hasMoreThanOneNormalTab):
12469 (WI.LegacyTabBar.prototype._openDefaultTab):
12470 (WI.LegacyTabBar.prototype._recordTabBarItemSizesAndPositions):
12471 (WI.LegacyTabBar.prototype._applyTabBarItemSizesAndPositions):
12472 (WI.LegacyTabBar.prototype._clearTabBarItemSizesAndPositions):
12473 (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose.):
12474 (WI.LegacyTabBar.prototype._finishExpandingTabsAfterClose):
12475 (WI.LegacyTabBar.prototype._handleMouseDown):
12476 (WI.LegacyTabBar.prototype._handleClick):
12477 (WI.LegacyTabBar.prototype._handleMouseMoved):
12478 (WI.LegacyTabBar.prototype._handleMouseUp):
12479 (WI.LegacyTabBar.prototype._handleMouseLeave):
12480 (WI.LegacyTabBar.prototype._handleContextMenu):
12481 (WI.LegacyTabBar.prototype._handleNewTabClick):
12482 (WI.LegacyTabBar.prototype._handleTabPickerTabContextMenu):
12483 (WI.LegacyTabBar.prototype._handleNewTabMouseEnter):
12484
12485 * UserInterface/Views/NetworkTabContentView.js:
12486 (WI.NetworkTabContentView):
12487 * UserInterface/Views/NewTabContentView.js:
12488 (WI.NewTabContentView):
12489 (WI.NewTabContentView.tabInfo):
12490 (WI.NewTabContentView.isEphemeral): Deleted.
12491 * UserInterface/Views/ResourcesTabContentView.js:
12492 (WI.ResourcesTabContentView):
12493 * UserInterface/Views/SearchTabContentView.js:
12494 (WI.SearchTabContentView):
12495 (WI.SearchTabContentView.tabInfo):
12496 (WI.SearchTabContentView.isEphemeral): Deleted.
12497
12498 * UserInterface/Views/SettingsTabContentView.js:
12499 (WI.SettingsTabContentView.tabInfo):
12500 (WI.SettingsTabContentView.prototype._createExperimentalSettingsView):
12501 (WI.SettingsTabContentView.isEphemeral): Deleted.
12502
12503 * UserInterface/Views/StorageTabContentView.js:
12504 (WI.StorageTabContentView):
12505
12506 * UserInterface/Views/TabBar.css:
12507 * UserInterface/Views/TabBar.js:
12508 (WI.TabBar):
12509 (WI.TabBar.prototype.insertTabBarItem):
12510 (WI.TabBar.prototype.removeTabBarItem):
12511 (WI.TabBar.prototype.set selectedTabBarItem):
12512 (WI.TabBar.prototype.get normalNonEphemeralTabCount):
12513 (WI.TabBar.prototype._handleMouseDown):
12514 (WI.TabBar.prototype._handleClick):
12515 (WI.TabBar.prototype._handleMouseMoved):
12516 (WI.TabBar.prototype._handleMouseLeave):
12517 (WI.TabBar.prototype._handleContextMenu):
12518 (WI.TabBar.prototype._handleTabPickerTabContextMenu):
12519 (WI.TabBar.prototype.get newTabTabBarItem): Deleted.
12520 (WI.TabBar.prototype.updateNewTabTabBarItemState): Deleted.
12521 (WI.TabBar.prototype._openDefaultTab): Deleted.
12522 (WI.TabBar.prototype._handleNewTabClick): Deleted.
12523 (WI.TabBar.prototype._handleNewTabMouseEnter): Deleted.
12524 Remove support for the New Tab button and default tab. Without a default
12525 tab, there is nothing to display when no tabs are open, so prevent the
12526 last non-pinned tab from being removed.
12527
12528 * UserInterface/Views/TabBrowser.js:
12529 (WI.TabBrowser._tabBarItemRemoved):
12530 * UserInterface/Views/TabContentView.js:
12531 (WI.TabContentView.isEphemeral): Deleted.
12532 * UserInterface/Views/TimelineTabContentView.js:
12533 (WI.TimelineTabContentView):
12534
webkit@devinrousso.com594aa702018-01-31 00:39:18 +0000125352018-01-30 Devin Rousso <webkit@devinrousso.com>
12536
12537 Web Inspector: Replace Object.shallowMerge with ES2018 spread operator
12538 https://bugs.webkit.org/show_bug.cgi?id=182219
12539
12540 Reviewed by Brian Burg.
12541
12542 * UserInterface/Base/Utilities.js:
12543 (Object.shallowMerge): Deleted.
12544 * UserInterface/Base/DOMUtilities.js:
12545 (WI.linkifyNodeReference):
12546 * UserInterface/Base/Main.js:
12547 (WI.handlePossibleLinkClick):
12548 (WI.openURL):
12549 (WI.showSourceCodeLocation):
12550 (WI.showOriginalUnformattedSourceCodeLocation):
12551 (WI.showOriginalOrFormattedSourceCodeLocation):
12552 (WI.showOriginalOrFormattedSourceCodeTextRange):
12553 (WI.linkifyLocation):
12554 * UserInterface/Views/DOMTreeElement.js:
12555 (WI.DOMTreeElement.prototype._insertAdjacentHTML):
12556 * UserInterface/Views/WebSocketContentView.js:
12557 (WI.WebSocketContentView.prototype._addRow):
12558
mattbaker@apple.com73348012018-01-27 00:49:10 +0000125592018-01-26 Matt Baker <mattbaker@apple.com>
12560
mattbaker@apple.com0ead9da2018-01-27 01:36:36 +000012561 Web Inspector: Timelines content browser NavigationBar is squashed at narrow heights
12562 https://bugs.webkit.org/show_bug.cgi?id=182196
12563 <rdar://problem/36929899>
12564
12565 Reviewed by Joseph Pecoraro.
12566
12567 * UserInterface/Views/NavigationBar.css:
12568 (.navigation-bar):
12569
125702018-01-26 Matt Baker <mattbaker@apple.com>
12571
mattbaker@apple.com73348012018-01-27 00:49:10 +000012572 Web Inspector: TabBar redesign: improvements to tab layout and resize behavior
12573 https://bugs.webkit.org/show_bug.cgi?id=181468
12574 <rdar://problem/36395439>
12575
12576 Reviewed by Devin Rousso.
12577
12578 * Localizations/en.lproj/localizedStrings.js:
12579
12580 * UserInterface/Images/TabPicker.svg: Added.
12581 New ">>" icon for the tab picker button.
12582
12583 * UserInterface/Views/CanvasTabContentView.js:
12584 (WI.CanvasTabContentView):
12585 * UserInterface/Views/ConsoleTabContentView.js:
12586 (WI.ConsoleTabContentView):
12587 * UserInterface/Views/DebuggerTabContentView.js:
12588 (WI.DebuggerTabContentView):
12589 * UserInterface/Views/ElementsTabContentView.js:
12590 (WI.ElementsTabContentView):
12591
12592 * UserInterface/Views/GeneralTabBarItem.js:
12593 (WI.GeneralTabBarItem):
12594 (WI.GeneralTabBarItem.fromTabContentViewConstructor):
12595 (WI.GeneralTabBarItem.prototype.get title):
12596 Add missing override for getter/setter pair.
12597 (WI.GeneralTabBarItem.prototype.set title):
12598 (WI.GeneralTabBarItem.prototype._handleContextMenuEvent):
12599 Show the close button on ephemeral tabs only (Search, New Tab).
12600 Replace unused `representedObject` parameter with `isEphemeral`, which
12601 determines whether to show a close button for the tab.
12602
12603 * UserInterface/Views/LayersTabContentView.js:
12604 (WI.LayersTabContentView):
12605
12606 * UserInterface/Views/NavigationBar.js:
12607 Remove unused symbol.
12608
12609 * UserInterface/Views/NetworkTabContentView.js:
12610 (WI.NetworkTabContentView):
12611 * UserInterface/Views/NewTabContentView.js:
12612 (WI.NewTabContentView):
12613
12614 * UserInterface/Views/PinnedTabBarItem.js:
12615 (WI.PinnedTabBarItem):
12616 Remove unused parameter.
12617
12618 * UserInterface/Views/ResourcesTabContentView.js:
12619 (WI.ResourcesTabContentView):
12620 * UserInterface/Views/SearchTabContentView.js:
12621 (WI.SearchTabContentView):
12622 * UserInterface/Views/StorageTabContentView.js:
12623 (WI.StorageTabContentView):
12624
12625 * UserInterface/Views/TabBar.css:
12626 (.tab-bar > .item):
12627 (.tab-bar.calculate-width > .item):
12628 (.tab-bar > .item.pinned.tab-picker):
12629 (.tab-bar > .item > .close):
12630 (.tab-bar > .item > .title):
12631 (.tab-bar:not(.collapsed) > .item > .title):
12632 (.tab-bar.collapsed > .item:not(.pinned) > .icon):
12633 (.tab-bar > .item:hover > .close):
12634 (.tab-bar.collapsed > .item:hover > .close):
12635 (.tab-bar:not(.collapsed) > .item.ephemeral:hover > .icon):
12636 (.tab-bar.collapsed > .item.ephemeral:hover > .title):
12637 (body[dir=ltr] .tab-bar > .item > .close): Deleted.
12638 (body[dir=rtl] .tab-bar > .item > .close): Deleted.
12639 (.tab-bar > .item > .flex-space): Deleted.
12640 (.tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
12641 (body[dir=ltr] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
12642 (body[dir=rtl] .tab-bar > .item:not(.pinned) > .flex-space:last-child): Deleted.
12643 (body[dir=ltr] .tab-bar > .item > .title): Deleted.
12644 (body[dir=rtl] .tab-bar > .item > .title): Deleted.
12645 (.tab-bar.collapsed > .item): Deleted.
12646 (.tab-bar.collapsed > .item > .flex-space): Deleted.
12647 (.tab-bar.collapsed > .item > .close): Deleted.
12648 (body[dir=ltr] .tab-bar.collapsed > .item > .close): Deleted.
12649 (body[dir=rtl] .tab-bar.collapsed > .item > .close): Deleted.
12650 (.tab-bar.hide-titles > .item > .title): Deleted.
12651 (.tab-bar.collapsed:not(.hide-titles) > .item:not(.pinned):hover > .icon,): Deleted.
12652 (.tab-bar.collapsed:not(.hide-titles) > .item:hover > .close,): Deleted.
12653 Clean up tab styles and prevent tabs from shrinking during flex layout.
12654 Added new `calculate-width` class, to disable flex layout when measuring
12655 the minimum width of the TabBar required to fit all tab items.
12656
12657 * UserInterface/Views/TabBar.js:
12658 (WI.TabBar):
12659 (WI.TabBar.prototype.set selectedTabBarItem):
12660 (WI.TabBar.prototype.layout.forceItemHidden):
12661 (WI.TabBar.prototype.layout):
12662 Perform two layout passes, similar to NavigationBar. The first pass disables
12663 flex layout and measures tab items at full size. If the bar isn't wide enough
12664 to show all the tabs, hide their icons and measure again. If there still isn't
12665 room, hide tabs starting from the end of the bar and display the tab picker.
12666
12667 (WI.TabBar.prototype._handleMouseDown):
12668 (WI.TabBar.prototype._handleTabPickerTabContextMenu):
12669
12670 * UserInterface/Views/TabBarItem.js:
12671 (WI.TabBarItem):
12672
12673 * UserInterface/Views/TimelineTabContentView.js:
12674 (WI.TimelineTabContentView):
12675
commit-queue@webkit.orge4720eb2018-01-26 04:58:33 +0000126762018-01-25 Joseph Pecoraro <pecoraro@apple.com>
12677
commit-queue@webkit.orgf8bef1a2018-01-26 05:30:29 +000012678 Web Inspector: Network Table: Sort indicator is not displayed when sorted column is hidden and re-shown
12679 https://bugs.webkit.org/show_bug.cgi?id=182164
12680 <rdar://problem/36892619>
12681
12682 Reviewed by Brian Burg.
12683
12684 * UserInterface/Views/Table.js:
12685 (WI.Table.prototype.showColumn):
12686 Re-add the sort classes if the column being shown is the active sort column.
12687
126882018-01-25 Joseph Pecoraro <pecoraro@apple.com>
12689
commit-queue@webkit.orgec61d272018-01-26 05:22:24 +000012690 Web Inspector: Network - Cookies view should behave better at narrow widths, all data is hidden
12691 https://bugs.webkit.org/show_bug.cgi?id=182163
12692 <rdar://problem/36893241>
12693
12694 Reviewed by Brian Burg.
12695
12696 * UserInterface/Views/ResourceCookiesContentView.css:
12697 (.resource-cookies .table):
12698 Give these tables a reasonable minimum size so that if the inspector
12699 is narrow, the content view can still be scrolled to see all of
12700 the table data.
12701
12702 * UserInterface/Views/Table.css:
12703 (.table > .header):
12704 Match the data-container and mark overflow as hidden, otherwise
12705 super narrow widths show header content beyond the edge.
12706
127072018-01-25 Joseph Pecoraro <pecoraro@apple.com>
12708
commit-queue@webkit.orge4720eb2018-01-26 04:58:33 +000012709 Web Inspector: "Displayed Columns" should not be displayed in context menu if all columns are required columns
12710 https://bugs.webkit.org/show_bug.cgi?id=182162
12711 <rdar://problem/36893758>
12712
12713 Reviewed by Matt Baker.
12714
12715 * UserInterface/Views/Table.js:
12716 (WI.Table.prototype._handleHeaderContextMenu):
12717 Only add the header column when we know there are hideable columns.
12718
commit-queue@webkit.orga9791512018-01-25 00:22:29 +0000127192018-01-24 Joseph Pecoraro <pecoraro@apple.com>
12720
12721 Web Inspector: Simplify update-LegacyInspectorBackendCommands.rb
12722 https://bugs.webkit.org/show_bug.cgi?id=182067
12723
12724 Reviewed by Brian Burg.
12725
12726 * Scripts/update-LegacyInspectorBackendCommands.rb:
12727 Remove stale dependency_json, it has always been empty for a while now.
12728 Switch to framework WebInspectorUI to generate only the backend commands
12729 and not spend time generating a bunch of cpp files.
12730
nvasilyev@apple.comeca9aec2018-01-25 00:15:39 +0000127312018-01-24 Nikita Vasilyev <nvasilyev@apple.com>
12732
12733 REGRESSION (r226994): Web Inspector: Styles: Suggestions popover floats in top-left corner of Web Inspector after tabbing
12734 https://bugs.webkit.org/show_bug.cgi?id=182027
12735
12736 Reviewed by Matt Baker.
12737
12738 r226994 added a layout of all properties on property removal. Layout caused
12739 a property element to be removed from DOM right before dislaying the suggestion
12740 popover, resulting in the popover being displayed at the top left corner.
12741
12742 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12743 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
12744 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
12745 Only update property view indices when a property is removed.
12746
12747 * UserInterface/Views/SpreadsheetStyleProperty.js:
12748 (WI.SpreadsheetStyleProperty):
12749 (WI.SpreadsheetStyleProperty.prototype.set index):
12750
12751 * UserInterface/Views/SpreadsheetTextField.js:
12752 (WI.SpreadsheetTextField.prototype._updateCompletions):
12753 Checking this._element.parentNode to see if the element is attached to the DOM tree is unreliable,
12754 since the element may have a non-null parent node that is detached from the DOM tree. To fix that,
12755 we could traverse element's ancestors, but I used a concise isConnected property instead.
12756
commit-queue@webkit.org5e6bd7d2018-01-24 22:26:17 +0000127572018-01-24 Joseph Pecoraro <pecoraro@apple.com>
12758
12759 ReferenceError:​ Can't find variable:​ DOMAgent (at ScriptSyntaxTree.js:​178:​22)​
12760 https://bugs.webkit.org/show_bug.cgi?id=182059
12761
12762 Reviewed by Matt Baker.
12763
12764 * UserInterface/Models/ScriptSyntaxTree.js:
12765 (WI.ScriptSyntaxTree.functionReturnDivot):
12766 DOMAgent won't be available in a ServiceWorker or JSContext inspector. So add
12767 a check for DOMAgent, and assume if DOMAgent doesn't exist that we should fall
12768 back to the latest path (non-iOS 9) target.
12769
commit-queue@webkit.org45355c82018-01-24 00:46:39 +0000127702018-01-23 Joseph Pecoraro <pecoraro@apple.com>
12771
12772 Web Inspector: Network's columns shake when scrolling at non-default zoom level
12773 https://bugs.webkit.org/show_bug.cgi?id=181998
12774 <rdar://problem/36449808>
12775
12776 Reviewed by Matt Baker.
12777
12778 * UserInterface/Views/Table.js:
12779 When zoomed the bounding client rect values were fractional, which was
12780 unexpected by this area of code. Floor the values to get a value we expect
12781 to be able to evenly distribute.
12782
nvasilyev@apple.comda0a57c2018-01-23 00:52:32 +0000127832018-01-22 Nikita Vasilyev <nvasilyev@apple.com>
12784
12785 Web Inspector: Styles Redesign: data corruption when updating values quickly
12786 https://bugs.webkit.org/show_bug.cgi?id=179461
12787 <rdar://problem/35431882>
12788
12789 Reviewed by Joseph Pecoraro.
12790
12791 Data corruption used to happen because CSSStyleDeclaration.prototype.text didn't
12792 update synchronously. Making two or more quick changes resulted in corrupted data.
12793
12794 Imagine we modify a CSS value 3 times:
12795
12796 Front-end: (1)-(2)---(3)
12797 Back-end: (1)-----(2)-(3)
12798
12799 The first response from the backend could happen after the 2nd edit. In this patch,
12800 CSSStyleDeclaration is locked when its view is being edited.
12801
12802 To correctly display invalid and overridden properties, the backend is allowed to update
12803 CSSStyleDeclaration and CSSProperty when they're locked if the text from the backend
12804 matches the model's text. This should happen when the backend is caught up with the
12805 front-end changes.
12806
12807 * UserInterface/Models/CSSProperty.js:
12808 (WI.CSSProperty.prototype.update):
12809 * UserInterface/Models/CSSStyleDeclaration.js:
12810 (WI.CSSStyleDeclaration):
12811 (WI.CSSStyleDeclaration.prototype.get locked):
12812 (WI.CSSStyleDeclaration.prototype.set locked):
12813 (WI.CSSStyleDeclaration.prototype.set text):
12814
12815 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12816 (WI.SpreadsheetCSSStyleDeclarationEditor):
12817 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
12818 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.detached):
12819 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get editing):
12820 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set focused):
12821 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set inlineSwatchActive):
12822 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchActivated):
12823 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.stylePropertyInlineSwatchDeactivated):
12824 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._propertiesChanged):
12825 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
12826 Lock CSSStyleDeclaration when a CSS property name or value is focused or
12827 an inline widget is active.
12828
12829 * UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:
12830 (WI.SpreadsheetCSSStyleDeclarationSection):
12831 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleMouseDown):
12832 (WI.SpreadsheetCSSStyleDeclarationSection.prototype._handleClick):
12833 * UserInterface/Views/SpreadsheetStyleProperty.js:
12834 (WI.SpreadsheetStyleProperty):
12835 (WI.SpreadsheetStyleProperty.prototype._createInlineSwatch):
12836 When selector is focused, clicking on the white-space should not add a new blank property.
12837
ross.kirsling@sony.com56b55eb2018-01-19 23:18:44 +0000128382018-01-19 Ross Kirsling <ross.kirsling@sony.com>
12839
12840 Web Inspector: Layers tab should do away with popovers (if possible)
12841 https://bugs.webkit.org/show_bug.cgi?id=181805
12842
12843 Reviewed by Matt Baker.
12844
12845 * Localizations/en.lproj/localizedStrings.js:
12846 Remove superfluous colon from a string.
12847
12848 * UserInterface/Main.html:
12849 * UserInterface/Views/LayerDetailsSidebarPanel.css:
12850 * UserInterface/Views/Layers3DContentView.css: Added.
12851 Remove popover styling from sidebar, add new file with similar styling for canvas overlay.
12852
12853 * UserInterface/Views/LayerDetailsSidebarPanel.js:
12854 (WI.LayerDetailsSidebarPanel):
12855 (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
12856 (WI.LayerDetailsSidebarPanel.prototype._dataGridSelectedNodeChanged):
12857 (WI.LayerDetailsSidebarPanel.prototype._updateLayers):
12858 (WI.LayerDetailsSidebarPanel.prototype._updateBottomBar):
12859 (WI.LayerDetailsSidebarPanel.prototype.willDismissPopover): Deleted.
12860 (WI.LayerDetailsSidebarPanel.prototype._showPopoverForSelectedNode): Deleted.
12861 (WI.LayerDetailsSidebarPanel.prototype._presentPopover): Deleted.
12862 (WI.LayerDetailsSidebarPanel.prototype._contentForPopover): Deleted.
12863 (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons.addReason): Deleted.
12864 (WI.LayerDetailsSidebarPanel.prototype._populateListOfCompositingReasons): Deleted.
12865 * UserInterface/Views/Layers3DContentView.js:
12866 (WI.Layers3DContentView):
12867 (WI.Layers3DContentView.prototype.shown):
12868 (WI.Layers3DContentView.prototype.selectLayerById):
12869 (WI.Layers3DContentView.prototype._canvasMouseDown):
12870 (WI.Layers3DContentView.prototype._buildLayerInfoElement):
12871 (WI.Layers3DContentView.prototype._updateLayerInfoElement):
12872 (WI.Layers3DContentView.prototype._updateReasonsList):
12873 Remove popover from sidebar table, overlay div with same data arrangement on top of the canvas.
12874 Also reverse the fix from r226671 since the visualization is no longer unusable without the sidebar!
12875
mattbaker@apple.com94f98b92018-01-19 23:01:11 +0000128762018-01-19 Matt Baker <mattbaker@apple.com>
12877
12878 Web Inspector: Canvas Tab: Multiple "waiting for frames" messages displayed
12879 https://bugs.webkit.org/show_bug.cgi?id=181865
12880 <rdar://problem/36664737>
12881
12882 Reviewed by Devin Rousso.
12883
12884 * UserInterface/Views/CanvasContentView.js:
12885 (WI.CanvasContentView.prototype._recordingStarted):
12886 (WI.CanvasContentView.prototype._recordingStopped):
12887
nvasilyev@apple.com4f2ceb42018-01-19 20:13:20 +0000128882018-01-19 Nikita Vasilyev <nvasilyev@apple.com>
12889
nvasilyev@apple.com98b5d642018-01-19 21:36:58 +000012890 Web Inspector: Styles Redesign: tabbing on commented out property throws exception
12891 https://bugs.webkit.org/show_bug.cgi?id=180676
12892 <rdar://problem/35981058>
12893
12894 Reviewed by Joseph Pecoraro.
12895
12896 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
12897 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingFirstProperty):
12898 Tabbing from the selector field should focus on the first editable property.
12899 When no editable properties are present, a new blank property should be added after the commented out ones.
12900
12901 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.startEditingLastProperty):
12902 Shift-tabbing from the selector field should focus on the last editable property of the previous CSS rule.
12903 When no editable properties are present, a new blank property should be added after the commented out ones.
12904
12905 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetCSSStyleDeclarationEditorFocusMoved):
12906 When navigating between properties skip the commented out ones.
12907
12908 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyAfter):
12909 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype._editablePropertyBefore):
12910 * UserInterface/Views/SpreadsheetStyleProperty.js:
12911 (WI.SpreadsheetStyleProperty.prototype.get enabled):
12912 (WI.SpreadsheetStyleProperty.prototype._update):
12913
129142018-01-19 Nikita Vasilyev <nvasilyev@apple.com>
12915
nvasilyev@apple.com4f2ceb42018-01-19 20:13:20 +000012916 Web Inspector: Make styles sidebar always LTR
12917 https://bugs.webkit.org/show_bug.cgi?id=175357
12918 <rdar://problem/33787988>
12919
12920 Reviewed by Joseph Pecoraro.
12921
12922 * UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:
12923 (WI.SpreadsheetRulesStyleDetailsPanel):
12924
keith_miller@apple.combd951472018-01-19 18:33:52 +0000129252018-01-19 Keith Miller <keith_miller@apple.com>
12926
12927 HaveInternalSDK includes should be "#include?"
12928 https://bugs.webkit.org/show_bug.cgi?id=179670
12929
12930 Reviewed by Dan Bernstein.
12931
12932 * Configurations/Base.xcconfig:
12933
mitz@apple.come8cb0be2018-01-18 19:49:51 +0000129342018-01-18 Dan Bernstein <mitz@apple.com>
12935
12936 [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions
12937 https://bugs.webkit.org/show_bug.cgi?id=181803
12938
12939 Reviewed by Tim Horton.
12940
12941 * Configurations/Base.xcconfig: Updated.
12942 * Configurations/DebugRelease.xcconfig: Ditto.
12943 * Configurations/Version.xcconfig: Ditto.
12944
webkit@devinrousso.com37da84f2018-01-18 19:41:00 +0000129452018-01-18 Devin Rousso <webkit@devinrousso.com>
12946
12947 Web Inspector: Canvas Tab: record button on canvas card doesn't always show on hover, or is misplaced
12948 https://bugs.webkit.org/show_bug.cgi?id=179183
12949
12950 Reviewed by Joseph Pecoraro.
12951
12952 * UserInterface/Views/CanvasOverviewContentView.css:
12953 (.content-view.canvas-overview .content-view.canvas:not(.is-recording) > header > .navigation-bar > .item.record-start-stop): Deleted.
12954
webkit@devinrousso.com035c5722018-01-18 05:03:26 +0000129552018-01-17 Devin Rousso <webkit@devinrousso.com>
12956
12957 Web Inspector: clicking on a path component that has no siblings should select it
12958 https://bugs.webkit.org/show_bug.cgi?id=181772
12959
12960 Reviewed by Joseph Pecoraro.
12961
12962 * UserInterface/Views/HierarchicalPathComponent.js:
12963 (WI.HierarchicalPathComponent.prototype._updateSelectElement):
12964 (WI.HierarchicalPathComponent.prototype._selectElementMouseDown):
12965
commit-queue@webkit.org5c38b6c2018-01-17 18:41:56 +0000129662018-01-17 Joseph Pecoraro <pecoraro@apple.com>
12967
commit-queue@webkit.orgb27a05e2018-01-17 20:25:02 +000012968 Web Inspector: Add back localized strings for Styles sidebar panels
12969 https://bugs.webkit.org/show_bug.cgi?id=181748
12970 <rdar://problem/36583184>
12971
12972 Reviewed by Brian Burg.
12973
12974 * Localizations/en.lproj/localizedStrings.js:
12975 * UserInterface/Views/ComputedStyleDetailsSidebarPanel.js:
12976 (WI.ComputedStyleDetailsSidebarPanel):
12977 * UserInterface/Views/RulesStyleDetailsSidebarPanel.js:
12978 (WI.RulesStyleDetailsSidebarPanel):
12979 * UserInterface/Views/VisualStyleDetailsSidebarPanel.js:
12980 (WI.VisualStyleDetailsSidebarPanel):
12981 Add back localized strings for panel titles lost in r225547.
12982
129832018-01-17 Joseph Pecoraro <pecoraro@apple.com>
12984
commit-queue@webkit.org5c38b6c2018-01-17 18:41:56 +000012985 Web Inspector: Super long URL string causes bad wrapping in Resources detail sidebar
12986 https://bugs.webkit.org/show_bug.cgi?id=181617
12987
12988 Reviewed by Brian Burg.
12989
12990 * UserInterface/Views/DetailsSection.css:
12991 (.details-section > .content > .group > .row.simple > .value):
12992 Set the break to all characters.
12993
mattbaker@apple.comf13364d2018-01-16 23:17:36 +0000129942018-01-16 Matt Baker <mattbaker@apple.com>
12995
12996 Web Inspector: Canvas tab: typing a "space" in the QuickConsole shouldn't trigger a recording
12997 https://bugs.webkit.org/show_bug.cgi?id=181706
12998 <rdar://problem/36558221>
12999
13000 Reviewed by Joseph Pecoraro.
13001
13002 * UserInterface/Views/CanvasOverviewContentView.js:
13003 (WI.CanvasOverviewContentView):
13004 (WI.CanvasOverviewContentView.prototype._handleSpace):
13005
commit-queue@webkit.org4b0009c2018-01-16 22:26:26 +0000130062018-01-16 Joseph Pecoraro <pecoraro@apple.com>
13007
13008 Web Inspector: Make Console's Execution Context picker stand out when it is non-default
13009 https://bugs.webkit.org/show_bug.cgi?id=181628
13010 <rdar://problem/36492044>
13011
13012 Reviewed by Matt Baker.
13013
13014 * UserInterface/Views/HierarchicalPathComponent.css:
13015 (.hierarchical-path-component > .selector-arrows):
13016 * UserInterface/Views/HierarchicalPathComponent.js:
13017 (WI.HierarchicalPathComponent.prototype.set selectorArrows):
13018 Switch to SVG element so we can style the arrows.
13019
13020 * UserInterface/Views/QuickConsole.css:
13021 (.quick-console > .navigation-bar > .hierarchical-path .execution-context):
13022 (.quick-console > .navigation-bar > .hierarchical-path .execution-context .separator):
13023 (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context):
13024 (.quick-console > .navigation-bar > .hierarchical-path.non-default-execution-context .execution-context .selector-arrows):
13025 Styles for the execution context picker. We hide the unused separator
13026 and instead use margin so that the selected background and border don't
13027 have an extra 7px on the right/end side.
13028
13029 * UserInterface/Views/QuickConsole.js:
13030 (WI.QuickConsole.prototype._activeExecutionContextChanged):
13031 Toggle the non-default class name on the path.
13032
nvasilyev@apple.com1a133f32018-01-16 20:23:12 +0000130332018-01-16 Nikita Vasilyev <nvasilyev@apple.com>
13034
nvasilyev@apple.com00c66e32018-01-16 20:54:04 +000013035 Web Inspector: Styles: pressing down key should select first item from completion list when focusing on empty value
13036 https://bugs.webkit.org/show_bug.cgi?id=181633
13037 <rdar://problem/36501797>
13038
13039 Reviewed by Joseph Pecoraro.
13040
13041 * UserInterface/Views/SpreadsheetTextField.js:
13042 (WI.SpreadsheetTextField.prototype._updateCompletions):
13043
130442018-01-16 Nikita Vasilyev <nvasilyev@apple.com>
13045
nvasilyev@apple.com7afead02018-01-16 20:31:54 +000013046 Web Inspector: Styles Redesign: Long value causes bad wrapping
13047 https://bugs.webkit.org/show_bug.cgi?id=181618
13048 <rdar://problem/36485175>
13049
13050 Reviewed by Joseph Pecoraro.
13051
13052 Wrap long values only when editing.
13053
13054 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
13055 (.spreadsheet-style-declaration-editor .value.editing):
13056
130572018-01-16 Nikita Vasilyev <nvasilyev@apple.com>
13058
nvasilyev@apple.com1a133f32018-01-16 20:23:12 +000013059 Web Inspector: Styles Redesign: clicking on the white space after the property sometimes places a blank property at the wrong index
13060 https://bugs.webkit.org/show_bug.cgi?id=179585
13061 <rdar://problem/35490780>
13062
13063 Reviewed by Joseph Pecoraro.
13064
13065 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:
13066 (WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyRemoved):
13067 Layout call is needed to update data-property-index attributes on the property views.
13068
commit-queue@webkit.orgad830a32018-01-16 20:20:35 +0000130692018-01-16 Joseph Pecoraro <pecoraro@apple.com>
13070
13071 Web Inspector: Network Tab - Export HAR Context Menu not working
13072 https://bugs.webkit.org/show_bug.cgi?id=181694
13073 <rdar://problem/36479197>
13074
13075 Reviewed by Brian Burg.
13076
13077 * UserInterface/Views/NetworkTableContentView.js:
13078 (WI.NetworkTableContentView.prototype.tableCellContextMenuClicked):
13079 Ensure `this` works in the handler.
13080
mattbaker@apple.com34822982018-01-16 07:03:57 +0000130812018-01-15 Matt Baker <mattbaker@apple.com>
13082
13083 Web Inspector: TabBar redesign: add context menu to TabBar for toggling available tabs
13084 https://bugs.webkit.org/show_bug.cgi?id=181448
13085 <rdar://problem/36383298>
13086
13087 Reviewed by Devin Rousso.
13088
13089 * UserInterface/Base/Main.js:
13090 (WI.loaded):
13091 (WI.contentLoaded):
13092 Reorder production tab classes and default (open) tabs.
13093 (WI.registerTabClass): Removed.
13094 Not used.
13095
13096 * UserInterface/Base/Object.js:
13097 Remove notification that is no longer used.
13098
13099 * UserInterface/Views/GeneralTabBarItem.js:
13100 (WI.GeneralTabBarItem):
13101 (WI.GeneralTabBarItem.prototype.set title):
13102 (WI.GeneralTabBarItem.prototype._handleContextMenuEvent): Deleted.
13103 Remove per-tab context menu (provided Close Tab and Close Other Tabs).
13104
13105 * UserInterface/Views/NewTabContentView.js:
13106 (WI.NewTabContentView):
13107
13108 * UserInterface/Views/TabBar.js:
13109 (WI.TabBar):
13110 (WI.TabBar.prototype._handleContextMenu):
13111
13112 * UserInterface/Views/TabBrowser.js:
13113 (WI.TabBrowser):
13114 (WI.TabBrowser._handleNewTabContextMenu): Deleted.
13115 No longer needed.
13116
nvasilyev@apple.com460e7352018-01-14 04:06:15 +0000131172018-01-13 Nikita Vasilyev <nvasilyev@apple.com>
13118
13119 Web Inspector: Styles Redesign: properties should never be semitransparent or crossed out while editing
13120 https://bugs.webkit.org/show_bug.cgi?id=180793
13121 <rdar://problem/36038813>
13122
13123 Reviewed by Devin Rousso.
13124
13125 * UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:
13126 (.spreadsheet-style-declaration-editor .value.editing):
13127 (.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):
13128 (.spreadsheet-style-declaration-editor .property.invalid-name:not(.disabled) .content > *):
13129 (.spreadsheet-style-declaration-editor .property.invalid-value:not(.disabled) .content .value):
13130 (.spreadsheet-style-declaration-editor .property.not-inherited .content > *):
13131 * UserInterface/Views/SpreadsheetStyleProperty.js:
13132 (WI.SpreadsheetStyleProperty.prototype._update):
13133
commit-queue@webkit.org53962592018-01-12 21:03:22 +0000131342018-01-12 Joseph Pecoraro <pecoraro@apple.com>
13135
commit-queue@webkit.org0b67c282018-01-12 21:47:07 +000013136 Web Inspector: Drop support for iOS 7 targets
13137 https://bugs.webkit.org/show_bug.cgi?id=181549
13138 <rdar://problem/36444813>
13139
13140 Reviewed by Brian Burg.
13141
13142 * Versions/Inspector-iOS-7.0.json: Removed.
13143 * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js: Removed.
13144 Remove protocol snapshot and generated commands for iOS 7.
13145
13146 * UserInterface/Base/Main.js:
13147 * UserInterface/Controllers/BreakpointPopoverController.js:
13148 (WI.BreakpointPopoverController.prototype._createPopoverContent):
13149 * UserInterface/Controllers/DebuggerManager.js:
13150 (WI.DebuggerManager.prototype._setBreakpoint):
13151 * UserInterface/Controllers/SourceMapManager.js:
13152 (WI.SourceMapManager.prototype._loadAndParseSourceMap):
13153 * UserInterface/Models/Instrument.js:
13154 (WI.Instrument.startLegacyTimelineAgent):
13155 * UserInterface/Models/ResourceTimingData.js:
13156 * UserInterface/Models/ScriptTimelineRecord.js:
13157 (WI.ScriptTimelineRecord.EventType.displayName):
13158 * UserInterface/Models/SourceMapResource.js:
13159 (WI.SourceMapResource.prototype.requestContentFromBackend):
13160 * UserInterface/Protocol/CSSObserver.js:
13161 (WI.CSSObserver.prototype.regionLayoutUpdated): Deleted.
13162 * UserInterface/Protocol/RemoteObject.js:
13163 (WI.RemoteObject.fromPayload):
13164 Remove code that was only necessary to support iOS 7.
13165
131662018-01-12 Joseph Pecoraro <pecoraro@apple.com>
13167
commit-queue@webkit.org53962592018-01-12 21:03:22 +000013168 Web Inspector: Support JSX (React) syntax highlighting
13169 https://bugs.webkit.org/show_bug.cgi?id=181607
13170 <rdar://problem/36442564>
13171
13172 Reviewed by Brian Burg.
13173
13174 * UserInterface/Base/MIMETypeUtilities.js:
13175 (WI.mimeTypeForFileExtension):
13176 (WI.fileExtensionForMIMEType):
13177 * UserInterface/Models/Resource.js:
13178 Support the jsx extension and mime types.
13179
13180 * UserInterface/Main.html:
13181 * Scripts/update-codemirror-resources.rb:
13182 * UserInterface/External/CodeMirror/jsx.js: Added.
13183 Include new mode from CodeMirror@d8926768.
13184
commit-queue@webkit.orgecdf31a2018-01-11 08:19:08 +0000131852018-01-11 Joseph Pecoraro <pecoraro@apple.com>
13186
commit-queue@webkit.orgc47e70e2018-01-12 00:30:45 +000013187 Web Inspector: Rename "Query String" section as "Query String Parameters" for clarity
13188 https://bugs.webkit.org/show_bug.cgi?id=181464
13189
13190 Reviewed by Darin Adler.
13191
13192 * Localizations/en.lproj/localizedStrings.js:
13193 * UserInterface/Views/ResourceHeadersContentView.js:
13194 (WI.ResourceHeadersContentView.prototype.initialLayout):
13195
131962018-01-11 Joseph Pecoraro <pecoraro@apple.com>
13197
commit-queue@webkit.orgecdf31a2018-01-11 08:19:08 +000013198 Web Inspector: Remove unused variable in WI.DebuggerSidebarPanel
13199 https://bugs.webkit.org/show_bug.cgi?id=181517
13200
13201 Reviewed by Matt Baker.
13202
13203 * UserInterface/Views/DebuggerSidebarPanel.js:
13204
commit-queue@webkit.orgd0acc272018-01-11 07:05:12 +0000132052018-01-10 Joseph Pecoraro <pecoraro@apple.com>
13206
commit-queue@webkit.org2f64c112018-01-11 07:07:52 +000013207 REGRESSION(r218975): Web Inspector: Add back NavigationSidebarPanel initialization parameter used by SearchSidebarPanel (top overflow shadow)
13208 https://bugs.webkit.org/show_bug.cgi?id=181518
13209 <rdar://problem/36427197>
13210
13211 Reviewed by Matt Baker.
13212
13213 * UserInterface/Views/NavigationSidebarPanel.css:
13214 (.sidebar > .panel.navigation > .overflow-shadow.top):
13215 * UserInterface/Views/NavigationSidebarPanel.js:
13216 (WI.NavigationSidebarPanel):
13217 Add back the initialization parameter still used by SearchSidebarPanel
13218 and add back its implementation. There were still references to
13219 dynamically update _topOverflowShadowElement in NavigationSidebarPanel.
13220
132212018-01-10 Joseph Pecoraro <pecoraro@apple.com>
13222
commit-queue@webkit.orgd0acc272018-01-11 07:05:12 +000013223 Web Inspector: Incorrect check with WI.debuggableType
13224 https://bugs.webkit.org/show_bug.cgi?id=181515
13225 <rdar://problem/36425509>
13226
13227 Reviewed by Brian Burg.
13228
13229 * UserInterface/Base/Main.js:
13230 (WI.contentLoaded):
13231 This moved to WI.sharedApp a while ago.
13232
mattbaker@apple.comef5b4372018-01-11 03:36:29 +0000132332018-01-10 Matt Baker <mattbaker@apple.com>
13234
13235 Web Inspector: Canvas tab: throttle recording slider updates
13236 https://bugs.webkit.org/show_bug.cgi?id=180839
13237 <rdar://problem/36057849>
13238
13239 Reviewed by Joseph Pecoraro
13240
13241 * UserInterface/Base/Utilities.js:
13242 Add Object.throttle and Function.cancelThrottle. Repeated calls to a
13243 function on a throttled object are delayed, so that the function isn't
13244 invoked more frequently than the specified delay value.
13245
13246 For a description of throttling behavior see:
13247 - http://www.chrislondon.co/throttling-vs-debouncing
13248 - http://benalman.com/projects/jquery-throttle-debounce-plugin
13249
13250 * UserInterface/Views/RecordingContentView.js:
13251 (WI.RecordingContentView.prototype.updateActionIndex):
13252 Throttle frequency of canvas snapshot creation to 200ms.
13253 (WI.RecordingContentView.prototype.hidden):
13254 Prevent trailing edge call after hiding the view.
13255
commit-queue@webkit.org97cca382018-01-10 20:19:20 +0000132562018-01-10 Joseph Pecoraro <pecoraro@apple.com>
13257
13258 Web Inspector: Should not try to autocomplete subsections of a string
13259 https://bugs.webkit.org/show_bug.cgi?id=181461
13260 <rdar://problem/36369421>
13261
13262 Reviewed by Brian Burg.
13263
13264 * UserInterface/Controllers/CodeMirrorCompletionController.js:
13265 (WI.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
13266 Disable autocompletion within strings.
13267
commit-queue@webkit.org2b3c6662018-01-10 03:17:27 +0000132682018-01-09 Joseph Pecoraro <pecoraro@apple.com>
13269
13270 REGRESSION(r201855): Web Inspector: Should see "length" autocompletion suggestion on a string literal
13271 https://bugs.webkit.org/show_bug.cgi?id=181462
13272 <rdar://problem/36390699>
13273
13274 Reviewed by Matt Baker.
13275
13276 * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
13277 (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded.inspectedPage_evalResult_getCompletions):
13278 This is code that runs on the inspected target, which may have an old version of
13279 WebKit/JavaScriptCore, so don't use new syntax like this.
13280
13281 (WI.JavaScriptRuntimeCompletionProvider.prototype.completionControllerCompletionsNeeded):
13282 We intended to return the result by as a JSON value instead of a RemoteObject.
13283
ross.kirsling@sony.comc9167ef2018-01-10 02:43:36 +0000132842018-01-09 Ross Kirsling <ross.kirsling@sony.com>
13285
13286 Web Inspector: Layers sidebar shows popover on selection even when collapsed
13287 https://bugs.webkit.org/show_bug.cgi?id=181465
13288
13289 Reviewed by Matt Baker.
13290
13291 * UserInterface/Views/LayerDetailsSidebarPanel.js:
13292 (WI.LayerDetailsSidebarPanel.prototype.selectNodeByLayerId):
13293 Have sidebar show itself if necessary before displaying popover.
13294
commit-queue@webkit.orgba467f22018-01-08 17:42:17 +0000132952018-01-08 Joseph Pecoraro <pecoraro@apple.com>
13296
13297 Web Inspector: Find next / previous within a resource content view does not have bouncy highlight when editor scrolls
13298 https://bugs.webkit.org/show_bug.cgi?id=181279
13299 <rdar://problem/36291097>
13300
13301 Reviewed by Brian Burg.
13302
13303 * UserInterface/Views/TextEditor.js:
13304 (WI.TextEditor.prototype._revealSearchResult):
13305 Reposition the bouncy highlight on scroll based on the CodeMirror
13306 line/ch position of the search result.
13307
13308 (WI.TextEditor.prototype._removeBouncyHighlightElementIfNeeded):
13309 Track the bouncy highlight scroll handler in a member variable so that
13310 we always remember to remove it and don't leak scroll handlers.
13311
ddkilzer@apple.com925e86e2018-01-08 06:00:43 +0000133122018-01-07 David Kilzer <ddkilzer@apple.com>
13313
13314 Enable -Wcast-qual for WebInspectorUI, WebKitLegacy, WebKit projects
13315 <https://webkit.org/b/181256>
13316 <rdar://problem/36281730>
13317
13318 Reviewed by Darin Adler.
13319
13320 * Configurations/Base.xcconfig:
13321 (WARNING_CFLAGS): Add -Wcast-qual.
13322
commit-queue@webkit.org8f8a4b92018-01-06 01:29:12 +0000133232018-01-05 Joseph Pecoraro <pecoraro@apple.com>
13324
13325 Web Inspector: Add another Protocol Version
13326 https://bugs.webkit.org/show_bug.cgi?id=181354
13327 <rdar://problem/35432817>
13328
13329 Reviewed by Matt Baker.
13330
13331 * UserInterface/Protocol/Legacy/11.3/InspectorBackendCommands.js: Added.
13332 * Versions/Inspector-iOS-11.3.json: Added.
13333
webkit@devinrousso.com9cefadd2018-01-05 06:40:30 +0000133342018-01-04 Devin Rousso <webkit@devinrousso.com>
13335
13336 Web Inspector: replace HTMLCanvasElement with CanvasRenderingContext for instrumentation logic
13337 https://bugs.webkit.org/show_bug.cgi?id=180770
13338
13339 Reviewed by Joseph Pecoraro.
13340
13341 * UserInterface/Models/Canvas.js:
13342 (WI.Canvas.fromPayload):
13343 (WI.Canvas.prototype.get contextType):
13344 (WI.Canvas.prototype.saveIdentityToCookie):
13345 (WI.Canvas.prototype.get frame): Deleted.
13346
commit-queue@webkit.orgb8865be2018-01-05 04:34:07 +0000133472018-01-04 Joseph Pecoraro <pecoraro@apple.com>
13348
13349 REGRESSION (r225709): Web Inspector: CSS Source maps not loading
13350 https://bugs.webkit.org/show_bug.cgi?id=181314
13351 <rdar://problem/36177620>
13352
13353 Reviewed by Brian Burg.
13354
13355 * UserInterface/Controllers/SourceMapManager.js:
13356 (WI.SourceMapManager.prototype._loadAndParseSourceMap):
13357 * UserInterface/Models/SourceMapResource.js:
13358 (WI.SourceMapResource.prototype.requestContentFromBackend):
13359 Correct this so that we only fall back to a reasonable frame id
13360 if we couldn't determine a frame id from earlier. Previously this
13361 was incorrectly clearing the frame id if we had gotten it earlier.
13362
13363 * UserInterface/Test.html:
13364 * UserInterface/Test/Test.js:
13365 (WI.loaded):
13366 Add SourceMap related files for tests.
13367
bburg@apple.com948fbb62018-01-04 21:29:13 +0000133682018-01-04 Brian Burg <bburg@apple.com>
13369
bburg@apple.comd4373572018-01-05 00:00:25 +000013370 Web Inspector: Capture Element Screenshot looks fuzzy
13371 https://bugs.webkit.org/show_bug.cgi?id=175734
13372 <rdar://problem/33803377>
13373
13374 Reviewed by Joseph Pecoraro and Simon Fraser.
13375
13376 Spruce up these functions a bit. They now optionally return a promise
13377 if no callback is supplied. They now can take either a WI.DOMNode or a node id.
13378
13379 * UserInterface/Controllers/DOMTreeManager.js:
13380 (WI.DOMTreeManager.prototype.querySelector):
13381 (WI.DOMTreeManager.prototype.querySelectorAll):
13382
133832018-01-04 Brian Burg <bburg@apple.com>
13384
bburg@apple.com948fbb62018-01-04 21:29:13 +000013385 Web Inspector: add RemoteObject.fetchProperties and some basic tests for RemoteObject API
13386 https://bugs.webkit.org/show_bug.cgi?id=180945
13387
13388 Reviewed by Joseph Pecoraro.
13389
13390 Add a new method, fetchProperties, which async fetches an arbitrary list of properties
13391 from a RemoteObject. This is intended for writing tests and other quick evaluations,
13392 so it has some behaviors that are suitable in these situations:
13393 - If the evaluation throws an exception, the result will reject with that exception.
13394 - If there is a protocol error for some reason, the result will reject with an exception.
13395 - Non-string and non-number keys cause an exception, as this is probably not intended.
13396 - Does not accept a callback, returns a promise only. New code should use async.
13397
13398 For full fidelity introspection of property descriptors, clients should use the existing
13399 getOwnPropertyDescriptor[s] class of methods.
13400
13401 * UserInterface/Protocol/RemoteObject.js:
13402 (WI.RemoteObject.prototype.async.fetchProperties): Added.
13403 - Validate specified keys and remove duplicates.
13404 - Request properties one-by-one to avoid fetching all descriptors and dealing with previews.
13405 - Unwrap returned primitive values to avoid unnecessary munging in tests.
13406
13407 (WI.RemoteObject.prototype.getProperty):
13408 - Rework this to return a promise if no callback was supplied.
13409 - Introduce stricter property type checking to avoid unintended mistakes.
13410
13411 (WI.RemoteObject.prototype.callFunction):
13412 - Rework this to return a promise if no callback was supplied.
13413 - Turn thrown exceptions and protocol errors into rejected promises.
13414
commit-queue@webkit.orgdde3a322018-01-04 20:56:43 +0000134152018-01-04 Joseph Pecoraro <pecoraro@apple.com>
13416
13417 Web Inspector: ⌘G / ⇧⌘G text search does not working after closing find banner
13418 https://bugs.webkit.org/show_bug.cgi?id=181280
13419 <rdar://problem/36291175>
13420
13421 Reviewed by Matt Baker.
13422
13423 * UserInterface/Views/ContentBrowser.js:
13424 (WI.ContentBrowser.prototype._findBannerDidHide):
13425 When the find banner is hidden trigger a new ContentView method,
13426 searchHidden instead of the destructive searchCleared. This allows
13427 most content views (text editors, DOM tree, Network Headers view)
13428 to keep their populated search results.
13429
13430 * UserInterface/Views/ContentView.js:
13431 (WI.ContentView.prototype.searchHidden):
13432 * UserInterface/Views/LogContentView.js:
13433 (WI.LogContentView.prototype.searchHidden):
13434 By default searchHidden does nothing. The Console's LogContentView
13435 treats the find banner differently and clears its search results.
13436
13437 * UserInterface/Views/TextEditor.js:
13438 (WI.TextEditor.prototype.searchCleared):
13439 Modernize some code while working in this area.
13440
13441 * UserInterface/Views/Main.css:
13442 (.bouncy-highlight):
13443 Ensure black text on yellow background in the bouncy highlight. In the
13444 DOM Tree it could have been white if the find banner was closed.
13445
commit-queue@webkit.org026ee042018-01-04 07:18:18 +0000134462018-01-03 Ting-Wei Lan <lantw44@gmail.com>
13447
13448 Replace hard-coded paths in shebangs with #!/usr/bin/env
13449 https://bugs.webkit.org/show_bug.cgi?id=181040
13450
13451 Reviewed by Alex Christensen.
13452
13453 * Scripts/combine-resources.pl:
13454 * Scripts/copy-user-interface-resources-dryrun.rb:
13455 * Scripts/copy-user-interface-resources.pl:
13456 * Scripts/fix-worker-imports-for-optimized-builds.pl:
13457 * Scripts/remove-console-asserts-dryrun.rb:
13458 * Scripts/remove-console-asserts.pl:
13459 * Scripts/update-LegacyInspectorBackendCommands.rb:
13460 * Scripts/update-codemirror-resources.rb:
13461 * WebInspectorUI.vcxproj/build-webinspectorui.pl:
13462
commit-queue@webkit.orgc45f9572018-01-03 22:46:33 +0000134632018-01-03 Joseph Pecoraro <pecoraro@apple.com>
13464
commit-queue@webkit.orgf95124f2018-01-04 05:58:24 +000013465 Web Inspector: "Log Value" context menu is sometimes unavailable
13466 https://bugs.webkit.org/show_bug.cgi?id=181278
13467 <rdar://problem/36281649>
13468
13469 Reviewed by Devin Rousso.
13470
13471 * UserInterface/Views/ObjectPreviewView.css:
13472 (.object-preview > .title):
13473 * UserInterface/Views/ObjectTreeView.css:
13474 (.object-tree.expanded > .title):
13475 Make the expanded object title information 16px tall to match ObjectTree
13476 tree element row heights. This eliminates the floating console message
13477 location from overlapping the first ObjectTree's TreeElement and causing
13478 truncation and other behavior issues (like Context Menu identification).
13479
134802018-01-03 Joseph Pecoraro <pecoraro@apple.com>
13481
commit-queue@webkit.orgf0c1ef42018-01-04 05:57:23 +000013482 Web Inspector: RTL - DOM Tree Element selection doesn't work
13483 https://bugs.webkit.org/show_bug.cgi?id=181275
13484 <rdar://problem/36290450>
13485
13486 Reviewed by Devin Rousso.
13487
13488 * UserInterface/Views/TreeOutline.js:
13489 (WI.TreeOutline.prototype.treeElementFromEvent):
13490 Provide a better explanation for why we are making the `x` adjustment here,
13491 to detect the inner most tree element along the horizontal. Fix the algorithm
13492 for RTL, since the intent is to adjust to the trailing edge of the container
13493 which is on the opposite side in RTL.
13494
134952018-01-03 Joseph Pecoraro <pecoraro@apple.com>
13496
commit-queue@webkit.org273c4b32018-01-04 00:46:52 +000013497 Web Inspector: Find banner sometimes does not work (when already populated and shown for first time on resource)
13498 https://bugs.webkit.org/show_bug.cgi?id=181255
13499 <rdar://problem/36248855>
13500
13501 Reviewed by Matt Baker.
13502
13503 * UserInterface/Views/TextEditor.js:
13504 (WI.TextEditor.prototype.set string):
13505 Defer any early searches until the initial content of a TextEditor has been set.
13506 Such searches can happen when the FindBanner already has content when a
13507 ContentView is first opened and needs to load its content from the backend.
13508 Further, even though the content may be loaded from the backend before the
13509 search results, microtask hops might cause the content to get to the TextEditor
13510 after the search results.
13511
135122018-01-03 Joseph Pecoraro <pecoraro@apple.com>
13513
commit-queue@webkit.orgc45f9572018-01-03 22:46:33 +000013514 REGRESSION: Web Inspector: Debugger tab doesn't restore selected resource on reload
13515 https://bugs.webkit.org/show_bug.cgi?id=181253
13516 <rdar://problem/36280564>
13517
13518 Reviewed by Matt Baker.
13519
13520 * UserInterface/Views/DebuggerSidebarPanel.js:
13521 (WI.DebuggerSidebarPanel.prototype.restoreStateFromCookie):
13522 Add braces to ensure the trailing else is actually trailing the outer
13523 chain as it was intended to be.
13524
commit-queue@webkit.orgd76347e2018-01-03 02:52:04 +0000135252018-01-02 Joseph Pecoraro <pecoraro@apple.com>
13526
13527 Web Inspector: Clicking source location link in Console unexpectedly jumps to Network tab
13528 https://bugs.webkit.org/show_bug.cgi?id=181229
13529 <rdar://problem/36075219>
13530
13531 Reviewed by Matt Baker.
13532
13533 * UserInterface/Base/Main.js:
13534 Cleanup linkifyURLAsNode. Ignore Search tab in generic handlePossibleLinkClick
13535 when not already in the Search tab.
13536
13537 * UserInterface/Views/CallFrameView.js:
13538 (WI.CallFrameView):
13539 Ignore Search and Network tab in CallFrame links.
13540
13541 * UserInterface/Views/TabBrowser.js:
13542 (WI.TabBrowser.prototype.bestTabContentViewForRepresentedObject):
13543 Improve style.
13544
mcatanzaro@igalia.com3fcf3c32018-01-02 04:27:34 +000013545== Rolled over to ChangeLog-2018-01-01 ==