1 2016-03-08 Joseph Pecoraro <pecoraro@apple.com>
3 Web Inspector: Make debugging Test.html easier
4 https://bugs.webkit.org/show_bug.cgi?id=155207
6 Reviewed by Brian Burg.
8 * UserInterface/Base/InspectorFrontendHostStub.js: Renamed from Source/WebInspectorUI/UserInterface/Protocol/InspectorFrontendHostStub.js.
9 (window.InspectorFrontendHost.WebInspector.InspectorFrontendHostStub.prototype.unbufferedLog):
10 Add new stub for test function.
12 * UserInterface/Main.html:
13 * UserInterface/Test.html:
14 Move the stub to the Base directory.
16 2016-03-08 Joseph Pecoraro <pecoraro@apple.com>
18 Web Inspector: Add a way to create a Heap Snapshot
19 https://bugs.webkit.org/show_bug.cgi?id=155188
21 Reviewed by Brian Burg.
23 * UserInterface/Main.html:
24 * UserInterface/Test.html:
25 Add new Model resources.
27 * UserInterface/Models/HeapSnapshot.js: Added.
28 (WebInspector.HeapSnapshotClassCategory):
29 (WebInspector.HeapSnapshot):
30 (WebInspector.HeapSnapshot.fromPayload):
31 (WebInspector.HeapSnapshot.prototype.get rootNode):
32 (WebInspector.HeapSnapshot.prototype.get nodes):
33 (WebInspector.HeapSnapshot.prototype.get identifier):
34 (WebInspector.HeapSnapshot.prototype.get instances):
35 (WebInspector.HeapSnapshot.prototype.get categories):
36 (WebInspector.HeapSnapshot.prototype.get totalSize):
37 (WebInspector.HeapSnapshot.prototype.get totalObjectCount):
38 (WebInspector.HeapSnapshot.prototype.instancesWithClassName):
39 (WebInspector.HeapSnapshot.prototype.nodeWithObjectIdentifier):
40 * UserInterface/Models/HeapSnapshotEdge.js: Added.
41 (WebInspector.HeapSnapshotEdge):
42 (WebInspector.HeapSnapshotEdge.prototype.stringify):
43 * UserInterface/Models/HeapSnapshotNode.js: Added.
44 (WebInspector.HeapSnapshotNode):
45 Data structures for a HeapSnapshot.
47 2016-03-08 Joseph Pecoraro <pecoraro@apple.com>
49 Web Inspector: Miscellaneous inspector fixes for typos / stale code
50 https://bugs.webkit.org/show_bug.cgi?id=155193
52 Reviewed by Timothy Hatcher.
54 * UserInterface/Models/SourceCodeLocation.js:
55 (WebInspector.SourceCodeLocation.prototype._locationString):
58 * UserInterface/Views/ApplicationCacheFrameContentView.js:
59 (WebInspector.ApplicationCacheFrameContentView):
60 Remove unused class name.
62 * UserInterface/Views/SourceCodeTextEditor.js:
63 (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
64 Remove inferredName, as that was never sent by our backend and is getting removed.
66 * UserInterface/Views/TimelineRuler.js:
67 (WebInspector.TimelineRuler.prototype._handleMouseUp):
68 Fix variable name typo.
70 2016-03-08 Joseph Pecoraro <pecoraro@apple.com>
72 Web Inspector: Images being blocked by CSP 2.0
73 https://bugs.webkit.org/show_bug.cgi?id=155182
74 <rdar://problem/25040640>
76 Reviewed by Daniel Bates.
78 * UserInterface/Main.html:
79 Allow Web Inspector to load file: and blob: image resources.
80 Also blob: media and font resources.
82 2016-03-06 Nikita Vasilyev <nvasilyev@apple.com>
84 Web Inspector: Use half-pixel borders for data grids
85 https://bugs.webkit.org/show_bug.cgi?id=154437
86 <rdar://problem/24736365>
88 Reviewed by Timothy Hatcher.
90 * UserInterface/Views/DataGrid.css:
93 (.data-grid :matches(th, td):not(:last-child)):
94 Half-pixel borders round to 1px on 1x (non-retina) screens since r192444.
96 * UserInterface/Views/DataGrid.js:
97 (WebInspector.DataGrid.prototype._positionResizerElements):
98 Use getBoundingClientRect for better precision since it provides subpixel values.
100 2016-03-05 Joseph Pecoraro <pecoraro@apple.com>
102 Web Inspector: Have separate path component for Script Timeline content views
103 https://bugs.webkit.org/show_bug.cgi?id=155075
104 <rdar://problem/24996564>
106 Reviewed by Timothy Hatcher.
108 * UserInterface/Images/CallTrees.svg: Added.
109 * UserInterface/Images/Events.svg: Added.
110 New icons based off of ResultLine.svg.
112 * UserInterface/Views/PathComponentIcons.css:
113 (.events-icon .icon):
114 (.call-trees-icon .icon):
115 (body:not(.mac-platform, .windows-platform) .call-trees-icon .icon):
116 Use the new icons and fallback to ResultLine.svg for other ports.
118 * UserInterface/Views/ScriptClusterTimelineView.js:
119 (WebInspector.ScriptClusterTimelineView):
120 (WebInspector.ScriptClusterTimelineView.prototype.get eventsContentView):
121 (WebInspector.ScriptClusterTimelineView.prototype.showEvents):
122 (WebInspector.ScriptClusterTimelineView.prototype.showProfile):
123 (WebInspector.ScriptClusterTimelineView.prototype._pathComponentForContentView):
124 (WebInspector.ScriptClusterTimelineView.prototype._identifierForContentView):
125 (WebInspector.ScriptClusterTimelineView.prototype._showContentViewForIdentifier):
126 (WebInspector.ScriptClusterTimelineView.prototype._scriptClusterViewCurrentContentViewDidChange):
127 (WebInspector.ScriptClusterTimelineView.prototype.get detailsContentView): Deleted.
128 (WebInspector.ScriptClusterTimelineView.prototype.showDetails): Deleted.
129 Rename "Details" to "Events".
131 * UserInterface/Views/TimelineRecordingContentView.js:
132 (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject): Deleted.
133 Always include the top level "Details" component.
135 2016-03-05 Joseph Pecoraro <pecoraro@apple.com>
137 Web Inspector: Add back support for a heavy / bottom up profile view
138 https://bugs.webkit.org/show_bug.cgi?id=140578
139 <rdar://problem/19506794>
141 Reviewed by Timothy Hatcher.
143 * Localizations/en.lproj/localizedStrings.js:
144 * UserInterface/Main.html:
145 New strings and resources.
147 * UserInterface/Base/Utilities.js:
148 (Number.secondsToMillisecondsString):
149 Helper for providing a consistent milliseconds string used in profiles.
151 * UserInterface/Controllers/TimelineManager.js:
152 (WebInspector.TimelineManager.prototype.scriptProfilerTrackingCompleted):
153 The calling context tree should be stored on a Recording, not on the global
154 TimelineManager. Also create two trees, one top down and one bottom up.
156 * UserInterface/Models/CallingContextTree.js:
157 (WebInspector.CallingContextTree):
158 (WebInspector.CallingContextTree.prototype.get type):
159 (WebInspector.CallingContextTree.prototype.get totalExecutionTime):
160 (WebInspector.CallingContextTree.prototype.reset):
161 (WebInspector.CallingContextTree.prototype.numberOfSamplesInTimeRange):
162 (WebInspector.CallingContextTree.prototype.increaseExecutionTime):
163 Give a CallingContextTree a type (TopDown / BottomUp) and some getters.
165 (WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
166 Build a bottom up or top down tree from samples.
168 (WebInspector.CallingContextTree.prototype.forEachChild):
169 Allow iterating from the root.
171 (WebInspector.CCTNode):
172 (WebInspector.CCTNode.prototype.hasChildrenInTimeRange):
173 (WebInspector.CCTNode.prototype.numberOfLeafTimestamps):
174 (WebInspector.CCTNode.prototype.addTimestampAndExpressionLocation):
175 (WebInspector.CCTNode.prototype.equals):
176 (WebInspector.CCTNode.prototype.hasChildren): Deleted.
177 Give a CCTNode a list of leaf timestamps alongside the list of all timestamps.
178 Leaf timestamps will count as "self time" in a profile view.
180 * UserInterface/Models/SourceCodeLocation.js:
181 (WebInspector.SourceCodeLocation.prototype._locationString):
182 Nobody was using "ColumnStyle.Hidden" so repurpose it to be even simpler.
184 * UserInterface/Models/TimelineRecording.js:
185 (WebInspector.TimelineRecording):
186 (WebInspector.TimelineRecording.prototype.get topDownCallingContextTree):
187 (WebInspector.TimelineRecording.prototype.get bottomUpCallingContextTree):
188 (WebInspector.TimelineRecording.prototype.reset):
189 Store the two types of calling context trees and allow reseting them.
191 * UserInterface/Protocol/InspectorFrontendAPI.js:
192 (InspectorFrontendAPI.contextMenuItemSelected):
193 Helper for debugging uncaught exceptions in context menus.
195 * UserInterface/Views/ContentView.js:
196 (WebInspector.ContentView.createFromRepresentedObject):
197 (WebInspector.ContentView.isViewable):
198 A ScriptTimeline now has a cluster view.
199 A CallingContextTree now has a ProfileView.
201 * UserInterface/Views/DataGrid.js:
202 (WebInspector.DataGrid.prototype.insertChild):
203 (WebInspector.DataGrid.prototype._contextMenuInDataTable):
204 (WebInspector.DataGridNode.prototype.refreshRecursively):
205 (WebInspector.DataGridNode.prototype.elementWithColumnIdentifier):
206 (WebInspector.DataGridNode.prototype.forEachImmediateChild):
207 (WebInspector.DataGridNode.prototype.forEachChildInSubtree):
208 (WebInspector.DataGridNode.prototype.isInSubtreeOfNode):
209 Provide some helpers for iterating DataGridNodes, useful when the
210 actual DataGrid comes from a DataGridTree.
212 (WebInspector.DataGridNode.prototype.select):
213 (WebInspector.DataGridNode.prototype.deselect):
214 The indent width of DataGridNodes was not getting reset when a
215 node was removed and re-added to a tree due to a cached padding.
217 (WebInspector.DataGridNode.prototype.appendContextMenuItems):
218 Allow DataGridNodes to provide context menu items by overriding this method.
220 * UserInterface/Views/PathComponentIcons.css:
221 (.function-icon .icon):
222 (.native-icon .icon):
223 (.program-icon .icon):
224 Icons for profile nodes in path components.
226 * UserInterface/Views/ProfileDataGridNode.js: Added.
227 (WebInspector.ProfileDataGridNode):
228 (WebInspector.ProfileDataGridNode.prototype.get node):
229 (WebInspector.ProfileDataGridNode.prototype.displayName):
230 (WebInspector.ProfileDataGridNode.prototype.iconClassName):
231 (WebInspector.ProfileDataGridNode.prototype.get data):
232 (WebInspector.ProfileDataGridNode.prototype.createCellContent):
233 (WebInspector.ProfileDataGridNode.prototype.sort):
234 (WebInspector.ProfileDataGridNode.prototype.refresh):
235 (WebInspector.ProfileDataGridNode.prototype.appendContextMenuItems):
236 (WebInspector.ProfileDataGridNode.prototype._updateChildrenForModifiers):
237 (WebInspector.ProfileDataGridNode.prototype._recalculateData):
238 (WebInspector.ProfileDataGridNode.prototype._totalTimeContent):
239 (WebInspector.ProfileDataGridNode.prototype._displayContent):
240 (WebInspector.ProfileDataGridNode.prototype._populate):
241 CCTNode DataGridNode. A row in the ProfileDataGridTree. Handles
242 tree modifiers like charge to caller.
244 * UserInterface/Views/ProfileDataGridTree.js: Added.
245 (WebInspector.ProfileDataGridTree):
246 (WebInspector.ProfileDataGridTree.buildSortComparator):
247 (WebInspector.ProfileDataGridTree.prototype.get callingContextTree):
248 (WebInspector.ProfileDataGridTree.prototype.get sampleInterval):
249 (WebInspector.ProfileDataGridTree.prototype.get focusNodes):
250 (WebInspector.ProfileDataGridTree.prototype.get currentFocusNode):
251 (WebInspector.ProfileDataGridTree.prototype.get modifiers):
252 (WebInspector.ProfileDataGridTree.prototype.get startTime):
253 (WebInspector.ProfileDataGridTree.prototype.get endTime):
254 (WebInspector.ProfileDataGridTree.prototype.get numberOfSamples):
255 (WebInspector.ProfileDataGridTree.prototype.get children):
256 (WebInspector.ProfileDataGridTree.prototype.appendChild):
257 (WebInspector.ProfileDataGridTree.prototype.insertChild):
258 (WebInspector.ProfileDataGridTree.prototype.removeChildren):
259 (WebInspector.ProfileDataGridTree.prototype.set sortComparator):
260 (WebInspector.ProfileDataGridTree.prototype.sort):
261 (WebInspector.ProfileDataGridTree.prototype.refresh):
262 (WebInspector.ProfileDataGridTree.prototype.addFocusNode):
263 (WebInspector.ProfileDataGridTree.prototype.rollbackFocusNode):
264 (WebInspector.ProfileDataGridTree.prototype.clearFocusNodes):
265 (WebInspector.ProfileDataGridTree.prototype.hasModifiers):
266 (WebInspector.ProfileDataGridTree.prototype.addModifier):
267 (WebInspector.ProfileDataGridTree.prototype.clearModifiers):
268 (WebInspector.ProfileDataGridTree.prototype._repopulate):
269 (WebInspector.ProfileDataGridTree.prototype._focusChanged):
270 (WebInspector.ProfileDataGridTree.prototype._updateCurrentFocusDetails):
271 (WebInspector.ProfileDataGridTree.prototype._restoreFocusedNodeToOriginalParent):
272 (WebInspector.ProfileDataGridTree.prototype._modifiersChanged):
273 Start of a DataGridTree for a CallingContextTree.
274 Contains special logic for focused nodes and modifiers.
276 * UserInterface/Views/ProfileView.css: Added.
277 (.profile > .data-grid):
278 (.profile > .data-grid th):
279 (.profile > .data-grid td .icon):
280 (.profile > .data-grid td .percentage):
281 (.profile > .data-grid td .location):
282 (.profile > .data-grid:matches(:focus, .force-focus) tr.selected td .location):
283 (.profile > .data-grid td .icon.function-icon):
284 (.profile > .data-grid td .icon.native-icon):
285 (.profile > .data-grid td .icon.program-icon):
286 (.profile > .data-grid tr:matches(.selected, :hover) .go-to-arrow):
287 (.profile > .data-grid td.function-column):
288 (.profile > .data-grid td .guidance):
289 (.profile > .data-grid td .guidance.hover):
290 (.profile > .data-grid td .guidance.base):
291 (.profile > .data-grid tr:not(.expanded) td .guidance.base):
292 (.profile > .data-grid tr.expanded td .guidance.base):
293 * UserInterface/Views/ProfileView.js: Added.
294 (WebInspector.ProfileView):
295 (WebInspector.ProfileView.prototype.get callingContextTree):
296 (WebInspector.ProfileView.prototype.get startTime):
297 (WebInspector.ProfileView.prototype.get endTime):
298 (WebInspector.ProfileView.prototype.setStartAndEndTime):
299 (WebInspector.ProfileView.prototype.hasFocusNodes):
300 (WebInspector.ProfileView.prototype.clearFocusNodes):
301 (WebInspector.ProfileView.prototype.get selectionPathComponents):
302 (WebInspector.ProfileView.prototype._recreate):
303 (WebInspector.ProfileView.prototype._repopulateDataGridFromTree):
304 (WebInspector.ProfileView.prototype._pathComponentClicked):
305 (WebInspector.ProfileView.prototype._dataGridTreeFocusChanged):
306 (WebInspector.ProfileView.prototype._dataGridTreeModifiersChanged):
307 (WebInspector.ProfileView.prototype._dataGridSortChanged):
308 (WebInspector.ProfileView.prototype._dataGridNodeSelected):
309 (WebInspector.ProfileView.prototype._dataGridNodeExpanded):
310 (WebInspector.ProfileView.prototype._mouseOverDataGrid):
311 (WebInspector.ProfileView.prototype._mouseLeaveDataGrid):
312 (WebInspector.ProfileView.prototype._guidanceElementKey):
313 (WebInspector.ProfileView.prototype._removeGuidanceElement):
314 (WebInspector.ProfileView.prototype._appendGuidanceElement):
315 ProfileView holds a data grid which is populated from the data grid tree.
316 Special handing for guidance markers when hovering / selecting parts of the tree.
318 * UserInterface/Views/ScriptClusterTimelineView.js: Added.
319 (WebInspector.ScriptClusterTimelineView.createPathComponent):
320 (WebInspector.ScriptClusterTimelineView):
321 (WebInspector.ScriptClusterTimelineView.prototype.get zeroTime):
322 (WebInspector.ScriptClusterTimelineView.prototype.set zeroTime):
323 (WebInspector.ScriptClusterTimelineView.prototype.get startTime):
324 (WebInspector.ScriptClusterTimelineView.prototype.set startTime):
325 (WebInspector.ScriptClusterTimelineView.prototype.get endTime):
326 (WebInspector.ScriptClusterTimelineView.prototype.set endTime):
327 (WebInspector.ScriptClusterTimelineView.prototype.get currentTime):
328 (WebInspector.ScriptClusterTimelineView.prototype.set currentTime):
329 (WebInspector.ScriptClusterTimelineView.prototype.get navigationSidebarTreeOutline):
330 (WebInspector.ScriptClusterTimelineView.prototype.reset):
331 (WebInspector.ScriptClusterTimelineView.prototype.filterDidChange):
332 (WebInspector.ScriptClusterTimelineView.prototype.matchTreeElementAgainstCustomFilters):
333 (WebInspector.ScriptClusterTimelineView.prototype.get detailsContentView):
334 (WebInspector.ScriptClusterTimelineView.prototype.get profileContentView):
335 (WebInspector.ScriptClusterTimelineView.prototype.get selectionPathComponents):
336 (WebInspector.ScriptClusterTimelineView.prototype.saveToCookie):
337 (WebInspector.ScriptClusterTimelineView.prototype.restoreFromCookie):
338 (WebInspector.ScriptClusterTimelineView.prototype.showDetails):
339 (WebInspector.ScriptClusterTimelineView.prototype.showProfile):
340 (WebInspector.ScriptClusterTimelineView.prototype._pathComponentForContentView):
341 (WebInspector.ScriptClusterTimelineView.prototype._identifierForContentView):
342 (WebInspector.ScriptClusterTimelineView.prototype._showContentViewForIdentifier):
343 (WebInspector.ScriptClusterTimelineView.prototype._pathComponentSelected):
344 (WebInspector.ScriptClusterTimelineView.prototype._scriptClusterViewCurrentContentViewDidChange):
345 Script Timeline ClusterContentView. Toggle between the normal "Details" data grid
346 and the new "Call Tree" profile view. Currently the recording expects child content
347 views to be TimelineViews, this ClusterContentView forwards TimelineView relevant
348 methods to the real TimelineView children.
350 * UserInterface/Views/ScriptDetailsTimelineView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ScriptTimelineView.js.
351 (WebInspector.ScriptDetailsTimelineView):
352 (WebInspector.ScriptDetailsTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
353 (WebInspector.ScriptDetailsTimelineView.prototype.shown):
354 (WebInspector.ScriptDetailsTimelineView.prototype.hidden):
355 (WebInspector.ScriptDetailsTimelineView.prototype.closed):
356 (WebInspector.ScriptDetailsTimelineView.prototype.get selectionPathComponents):
357 (WebInspector.ScriptDetailsTimelineView.prototype.reset):
358 (WebInspector.ScriptDetailsTimelineView.prototype.canShowContentViewForTreeElement):
359 (WebInspector.ScriptDetailsTimelineView.prototype.showContentViewForTreeElement):
360 (WebInspector.ScriptDetailsTimelineView.prototype.treeElementPathComponentSelected):
361 (WebInspector.ScriptDetailsTimelineView.prototype.treeElementSelected):
362 (WebInspector.ScriptDetailsTimelineView.prototype.dataGridNodeForTreeElement):
363 (WebInspector.ScriptDetailsTimelineView.prototype.populateProfileNodeTreeElement):
364 (WebInspector.ScriptDetailsTimelineView.prototype.layout):
365 (WebInspector.ScriptDetailsTimelineView.prototype._processPendingRecords):
366 (WebInspector.ScriptDetailsTimelineView.prototype._scriptTimelineRecordAdded):
367 (WebInspector.ScriptDetailsTimelineView.prototype._scriptTimelineRecordRefreshed):
368 (WebInspector.ScriptDetailsTimelineView.prototype._dataGridFiltersDidChange):
369 (WebInspector.ScriptDetailsTimelineView.prototype._dataGridNodeSelected):
370 * UserInterface/Views/ScriptProfileTimelineView.js: Added.
371 (WebInspector.ScriptProfileTimelineView):
372 (WebInspector.ScriptProfileTimelineView.prototype.closed):
373 (WebInspector.ScriptProfileTimelineView.prototype.get navigationItems):
374 (WebInspector.ScriptProfileTimelineView.prototype.get selectionPathComponents):
375 (WebInspector.ScriptProfileTimelineView.prototype.layout):
376 (WebInspector.ScriptProfileTimelineView.prototype._callingContextTreeForOrientation):
377 (WebInspector.ScriptProfileTimelineView.prototype._profileViewSelectionPathComponentsDidChange):
378 (WebInspector.ScriptProfileTimelineView.prototype._scriptTimelineRecordRefreshed):
379 (WebInspector.ScriptProfileTimelineView.prototype._updateProfileOrientationButtonItem):
380 (WebInspector.ScriptProfileTimelineView.prototype._toggleProfileOrientation):
381 (WebInspector.ScriptProfileTimelineView.prototype._updateClearFocusNodesButtonItem):
382 (WebInspector.ScriptProfileTimelineView.prototype._clearFocusNodes):
383 The two TimelineViews.
385 * UserInterface/Views/TimelineRecordingContentView.js:
386 (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
387 (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject):
388 The timeline content browser may now hold a ClusterContentView. It is not exactly a TimelineView,
389 but it holds TimelineViews, so treat it like one. Assume the ClusterContentView will add its own
392 (WebInspector.TimelineRecordingContentView.prototype._instrumentAdded):
393 Add extra information other than the sidebar to TimelineViews. The ProfileView looks
394 at the recording for the calling context trees.
396 2016-03-03 Timothy Hatcher <timothy@apple.com>
398 Web Inspector: Temporarily hide the TimelineSidebarPanel
400 https://bugs.webkit.org/show_bug.cgi?id=154974
401 rdar://problem/24956380
403 Reviewed by Joseph Pecoraro.
405 * UserInterface/Views/TimelineTabContentView.js:
406 (WebInspector.TimelineTabContentView): Remove _showNavigationSidebarItem and hide the sidebar.
408 2016-03-03 Matt Baker <mattbaker@apple.com>
410 Web Inspector: Selected range path component should be zero time corrected
411 https://bugs.webkit.org/show_bug.cgi?id=154950
412 <rdar://problem/24947022>
414 Reviewed by Timothy Hatcher.
416 Subtracts zero time from TimelineRange start and end values, and corrects
417 a cosmetic issue in TimelineRuler which showed selection handle tooltips
418 that weren't adjusted for the ruler's zero time.
420 * UserInterface/Views/TimelineRecordingContentView.js:
421 (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
423 * UserInterface/Views/TimelineRuler.js:
424 (WebInspector.TimelineRuler.prototype._updateSelection):
426 2016-03-03 Matt Baker <mattbaker@apple.com>
428 Web Inspector: Events and Frames mode switch does not fully switch until first zoom
429 https://bugs.webkit.org/show_bug.cgi?id=154971
430 <rdar://problem/24955871>
432 Reviewed by Timothy Hatcher.
434 Switching modes toggles the visibility of the tree outline, which changes
435 the width of the overview's ruler, graphs, and scroll container. When the
436 view mode changes, the overview needs a forced "resize" layout.
438 * UserInterface/Views/TimelineOverview.js:
439 (WebInspector.TimelineOverview.prototype._viewModeDidChange):
441 2016-03-03 Matt Baker <mattbaker@apple.com>
443 Web Inspector: Assertion Failed: Cannot show timeline because it does not belong to the shown recording. – "overview"
444 https://bugs.webkit.org/show_bug.cgi?id=154972
445 <rdar://problem/24956233>
447 Reviewed by Timothy Hatcher.
449 * UserInterface/Views/TimelineTabContentView.js:
450 (WebInspector.TimelineTabContentView.prototype._showTimelineViewForType):
451 Just show the overview if the recording has no timeline of the given type.
453 2016-03-02 Matt Baker <mattbaker@apple.com>
455 Web Inspector: Update MemoryTimelineView for new ruler height
456 https://bugs.webkit.org/show_bug.cgi?id=153904
457 <rdar://problem/24517259>
459 Reviewed by Timothy Hatcher.
461 * UserInterface/Views/MemoryTimelineView.css:
462 (.timeline-view.memory > .content > .details > .timeline-ruler):
463 (.timeline-view.memory > .content > .details > .subtitle):
464 Adjust ruler top and subtitle padding for shorter timeline ruler.
465 Also reduced padding in the Categories heading area to tighen up
468 2016-03-02 Matt Baker <mattbaker@apple.com>
470 Web Inspector: Timelines UI redesign: replace content view container with a content browser
471 https://bugs.webkit.org/show_bug.cgi?id=153033
472 <rdar://problem/24195565>
474 Reviewed by Timothy Hatcher.
476 This patch replaces the ContentViewContainer in the Timelines tab with a ContentBrowser,
477 moves filtering controls from the sidebar to the new browser's navigation bar, and adds
478 a new leaf path component for the current ruler selection to the main content browser's
481 * Localizations/en.lproj/localizedStrings.js:
484 * UserInterface/Base/Utilities.js:
485 Added global en dash string.
487 * UserInterface/Main.html:
488 * UserInterface/Test.html:
491 * UserInterface/Models/TimelineRange.js:
492 (WebInspector.TimelineRange):
493 (WebInspector.TimelineRange.prototype.get startValue):
494 (WebInspector.TimelineRange.prototype.set startValue):
495 (WebInspector.TimelineRange.prototype.get endValue):
496 (WebInspector.TimelineRange.prototype.set endValue):
497 New represented object used by ruler selection path components.
499 * UserInterface/Views/FilterBarNavigationItem.js:
500 (WebInspector.FilterBarNavigationItem):
501 (WebInspector.FilterBarNavigationItem.prototype.get filterBar):
502 Adapter class for using a FilterBar as a NavigationItem.
504 * UserInterface/Views/TimelineIcons.css:
506 Icon class used by ruler selection path component.
508 * UserInterface/Views/TimelineRecordingContentView.css:
509 (.content-view.timeline-recording > .content-browser):
510 (.content-view.timeline-recording > .content-browser > .navigation-bar):
511 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
512 (.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):
513 (.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid td):
514 (.content-view.timeline-recording > .content-browser > .content-view-container > .timeline-view > .data-grid table.data):
515 (.content-view.timeline-recording > .content-view-container): Deleted.
516 (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td): Deleted.
517 (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data): Deleted.
518 New styles for the ContentBrowser that replaces the ContentViewContainer.
520 * UserInterface/Views/TimelineRecordingContentView.js:
521 (WebInspector.TimelineRecordingContentView):
522 Create the ContentBrowser, ruler selection path components, and the browser's filter bar.
524 (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
525 (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
526 Implemented by the content browser instead of the view container.
528 (WebInspector.TimelineRecordingContentView.prototype.get selectionPathComponents):
529 Add timeline and selection path components. Components for the current TimelineView
530 are now located in the lower content browser's navigation bar.
532 (WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
533 (WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
534 (WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
535 (WebInspector.TimelineRecordingContentView.prototype.get saveData):
536 (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
537 (WebInspector.TimelineRecordingContentView.prototype.shown):
538 (WebInspector.TimelineRecordingContentView.prototype.hidden):
539 (WebInspector.TimelineRecordingContentView.prototype.closed):
540 (WebInspector.TimelineRecordingContentView.prototype.canGoBack):
541 (WebInspector.TimelineRecordingContentView.prototype.canGoForward):
542 (WebInspector.TimelineRecordingContentView.prototype.goBack):
543 (WebInspector.TimelineRecordingContentView.prototype.goForward):
544 (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
545 Implemented by the content browser instead of the view container.
547 (WebInspector.TimelineRecordingContentView.prototype.contentBrowserTreeElementForRepresentedObject):
548 Create the root tree element for the lower content browser's navigation bar.
550 (WebInspector.TimelineRecordingContentView.prototype._timeRangePathComponentSelected):
551 Update the ruler selection based on the new path component.
553 (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
554 (WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
555 (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
556 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
557 Implemented by the content browser instead of the view container.
559 (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
560 Update the currently selected path component when the ruler selection changes.
561 If the entire range is selected, show the "Entire Recording" path component,
562 otherwise update the TimelineRange of the path component for the user-defined
563 selection and refresh all timeline range path components.
565 (WebInspector.TimelineRecordingContentView.prototype._updateTimeRangePathComponents):
566 Update title text and sibling relationships for ruler selection path components.
568 (WebInspector.TimelineRecordingContentView.prototype._createTimelineRangePathComponent):
569 Helper function for creating TimelineRange path components.
571 (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
572 The TimelineView scope bar is no longer added to the sidebar. The UI has been moved
573 to the lower content browser navigation bar.
575 (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection): Deleted.
576 No longer needed since the selected range is shown in the navigation bar.
578 * UserInterface/Views/TimelineView.js:
579 (WebInspector.TimelineView.prototype.get navigationItems):
580 Adds the TimelineView's scope bar (if any) to the lower content browser's navigation
581 bar. Items are inserted before the filter bar, which is always the right-most item.
583 2016-03-02 Matt Baker <mattbaker@apple.com>
585 Web Inspector: Timelines UI redesign: show content tree outline records in timeline data grids
586 https://bugs.webkit.org/show_bug.cgi?id=153032
587 <rdar://problem/24195317>
589 Reviewed by Timothy Hatcher.
591 This patch relocates the data shown in the Timelines navigation sidebar content tree outline
592 to a new grid column in each TimelineDataGrid. Logic for creating subtitles, goto arrow buttons,
593 and status elements (the progress spinner used for network resources) has been replicated in
594 the appropriate TimelineDataGridNode classes.
596 Duplicate logic contained in TimelineRecordTreeElement classes is left in place for now, but
597 will be removed in <https://webkit.org/b/153036>.
599 * UserInterface/Views/DataGrid.css:
600 (.data-grid td.error):
601 Use --error-text-color CSS variable.
603 * UserInterface/Views/DataGrid.js:
604 Removed GoToArrowClicked event.
605 (WebInspector.DataGridNode.prototype.createGoToArrowButton.buttonClicked): Deleted.
606 (WebInspector.DataGridNode.prototype.createGoToArrowButton): Deleted.
607 Now part of TimelineDataGridNode.
609 * UserInterface/Views/LayoutTimelineDataGridNode.js:
610 (WebInspector.LayoutTimelineDataGridNode):
611 (WebInspector.LayoutTimelineDataGridNode.prototype.get data):
612 Add name cell to row data.
613 (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
616 * UserInterface/Views/LayoutTimelineView.css:
617 (.timeline-view.layout > .data-grid .eventType-column): Deleted.
618 Column border no longer hidden.
620 * UserInterface/Views/LayoutTimelineView.js:
621 (WebInspector.LayoutTimelineView):
624 * UserInterface/Views/NetworkTimelineView.css:
625 (.timeline-view.network > .data-grid .name-column .subtitle):
626 Don't show subtitles in the Network grid's name column.
628 * UserInterface/Views/NetworkTimelineView.js:
629 (WebInspector.NetworkTimelineView):
632 * UserInterface/Views/OverviewTimelineView.css:
633 (.timeline-view.overview > .data-grid th.graph-column > .timeline-ruler):
634 (.timeline-view.overview > .data-grid th.graph-column > .timeline-ruler > .header):
635 (.timeline-view.overview > .data-grid th):
636 (body.window-inactive .timeline-view.overview > .data-grid th):
637 (.timeline-view.overview .timeline-ruler > .event-markers):
638 (.timeline-view.overview > .data-grid):
639 (.timeline-view.overview > .timeline-ruler): Deleted.
640 (.timeline-view.overview > .timeline-ruler > .header): Deleted.
641 (body.window-inactive .timeline-view.overview > .timeline-ruler > .header): Deleted.
642 (.timeline-view.overview > .timeline-ruler > .event-markers): Deleted.
643 New styles for adding grid column headers and using a TimelineRuler as the
646 * UserInterface/Views/OverviewTimelineView.js:
647 (WebInspector.OverviewTimelineView):
648 Setup name column and add ruler to graph column header.
650 * UserInterface/Views/ProfileNodeDataGridNode.js:
651 (WebInspector.ProfileNodeDataGridNode):
652 Use cached data instead of creating row data at construction time.
653 (WebInspector.ProfileNodeDataGridNode.prototype.get data):
654 Add name cell to row data.
655 (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
657 (WebInspector.ProfileNodeDataGridNode.prototype._iconClassNameForProfileNode):
658 (WebInspector.ProfileNodeDataGridNode.prototype._titleForProfileNode):
659 Copied from ProfileNodeTreeElement.
661 * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
662 (WebInspector.RenderingFrameTimelineDataGridNode):
663 (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
664 Add name cell to row data.
665 (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
668 * UserInterface/Views/RenderingFrameTimelineView.js:
669 (WebInspector.RenderingFrameTimelineView):
672 * UserInterface/Views/ResourceTimelineDataGridNode.js:
673 (WebInspector.ResourceTimelineDataGridNode):
674 Renamed "graphOnly" to "includesGraph", since resource rows in the overview
675 now show the name column in addition to the graph column. Resource events
676 LoadingDidFinish and LoadingDidFail now need to be handled for both types
679 (WebInspector.ResourceTimelineDataGridNode.prototype.get data):
680 (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
681 Update resource status element and create name cell content.
682 (WebInspector.ResourceTimelineDataGridNode.prototype._createNameCellDocumentFragment):
683 Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
684 (WebInspector.ResourceTimelineDataGridNode.prototype._dataGridNodeGoToArrowClicked):
685 Show resource when goto arrow is clicked.
686 (WebInspector.ResourceTimelineDataGridNode.prototype._updateStatus):
687 Update name cell's text color and progress spinner.
689 * UserInterface/Views/ResourceTreeElement.css:
690 (.item.resource.failed):
691 (.item.resource.failed .subtitle):
692 Use --error-text-color CSS variable.
694 * UserInterface/Views/ScriptTimelineDataGridNode.js:
695 (WebInspector.ScriptTimelineDataGridNode):
696 (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
697 (WebInspector.ScriptTimelineDataGridNode.prototype._createNameCellDocumentFragment):
698 Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
700 * UserInterface/Views/ScriptTimelineView.js:
701 (WebInspector.ScriptTimelineView):
704 * UserInterface/Views/SourceCodeTimelineTimelineDataGridNode.js:
705 (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype.createCellContent):
706 Added now that this node type is no longer "graph only".
707 (WebInspector.SourceCodeTimelineTimelineDataGridNode.prototype._createNameCellContent):
708 Create DOM fragment with titles. Based on code in TimelineRecordTreeElement.
710 * UserInterface/Views/TimelineDataGridNode.js:
711 (WebInspector.TimelineDataGridNode):
712 Renamed `graphOnly` to `includesGraph`.
713 (WebInspector.TimelineDataGridNode.prototype.createCellContent):
714 Removed icon element creation. This is now handled by the DataGrid.
715 (WebInspector.TimelineDataGridNode.prototype.refresh):
716 Refresh of all node cells after updating the graph.
717 (WebInspector.TimelineDataGridNode.prototype.createGoToArrowButton):
718 (WebInspector.TimelineDataGridNode.prototype.createGoToArrowButton.buttonClicked):
719 Relocated from DataGrid, as it's only used by TimelineDataGridNodes.
721 * UserInterface/Views/TimelineView.css:
722 (.timeline-view > .data-grid .indeterminate-progress-spinner):
723 Styles for grid cell progress spinners.
725 * UserInterface/Views/Variables.css:
727 Added --error-text-color variable to remove duplication.
729 2016-03-02 Matt Baker <mattbaker@apple.com>
731 Web Inspector: Timelines UI redesign: relocate recording controls to TimelineTabContentView's content browser
732 https://bugs.webkit.org/show_bug.cgi?id=153532
733 <rdar://problem/24361611>
735 Reviewed by Timothy Hatcher.
737 This patch shifts UI controller responsibilities from the sidebar panel
738 to the tab content view. Controls for starting/stopping the recording and
739 switching view modes are now located in the tab's navigation bar, as is
740 the hidden tree outline of open timeline recordings.
742 * Localizations/en.lproj/localizedStrings.js:
743 New UI strings. Renamed view-mode radio buttons located from the sidebar
744 to "Events" and "Frames". UI for switching modes isn't final, and the
745 labels may change or be removed entirely in favor of image-only buttons.
747 * UserInterface/Main.html:
750 * UserInterface/Views/ContentBrowserTabContentView.js:
751 (WebInspector.ContentBrowserTabContentView.prototype.contentBrowserTreeElementForRepresentedObject):
752 (WebInspector.ContentBrowserTabContentView.prototype.treeElementForRepresentedObject):
753 Allow subclasses to override behavior for retrieving the tree element
754 for a represented object. Default behavior delegates the implementation
755 to the navigation sidebar.
757 (WebInspector.ContentBrowserTabContentView.prototype._contentBrowserCurrentContentViewDidChange):
758 (WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObject):
759 (WebInspector.ContentBrowserTabContentView):
760 (WebInspector.ContentBrowserTabContentView.prototype._revealAndSelectRepresentedObjectInNavigationSidebar): Deleted.
761 Renamed to _revealAndSelectRepresentedObject as it's no longer specific
764 * UserInterface/Views/TabContentView.js:
765 (WebInspector.TabContentView):
766 (WebInspector.TabContentView.prototype.restoreStateFromCookie):
767 (WebInspector.TabContentView.prototype.saveStateToCookie):
768 A navigation sidebar shouldn't be required to save/restore cookie state.
770 * UserInterface/Views/TimelineTabContentView.css: Added.
771 (.timeline.tab.content-view .navigation-bar > .item.toggle-navigation-sidebar.activate.button):
772 (.timeline.tab.content-view .navigation-bar > .item.record-start-stop):
773 (.timeline.tab.content-view .navigation-bar > .item.record-start-stop:hover):
774 (.timeline.tab.content-view .navigation-bar > .item.record-start-stop:active):
775 (.timeline.tab.content-view .navigation-bar > .item.record-start-stop *):
776 (.timeline.tab.content-view .navigation-bar > .item.radio):
777 Styles for new navigation items: record button and view mode radio buttons.
779 * UserInterface/Views/TimelineTabContentView.js:
780 Logic for maintaining the timeline recording hierarchy and the state
781 of the active recording has been added to the tab content view.
783 (WebInspector.TimelineTabContentView):
784 (WebInspector.TimelineTabContentView.prototype.shown):
785 (WebInspector.TimelineTabContentView.prototype.hidden):
786 (WebInspector.TimelineTabContentView.prototype.canShowRepresentedObject):
787 Objects other than recordings are no longer shown in the tab's content
788 browser. Displaying other objects (such as timeline resources) in the
789 content browser will be addressed in a follow-up patch: https://bugs.webkit.org/show_bug.cgi?id=154920.
791 (WebInspector.TimelineTabContentView.prototype.get supportsSplitContentBrowser):
792 (WebInspector.TimelineTabContentView.prototype.restoreFromCookie):
793 (WebInspector.TimelineTabContentView.prototype.saveToCookie):
794 Persist view state that was previously located in the sidebar.
796 (WebInspector.TimelineTabContentView.prototype.treeElementForRepresentedObject):
797 Implements logic previously limited to the navigation sidebar. Only tree
798 elements for timeline recordings are supported, since other represented
799 objects (timeline resources) no longer have content tree outline tree elements.
801 (WebInspector.TimelineTabContentView.prototype._capturingStartedOrStopped):
802 (WebInspector.TimelineTabContentView.prototype._toggleRecordingOnSpacebar):
803 (WebInspector.TimelineTabContentView.prototype._toggleNewRecordingOnSpacebar):
804 (WebInspector.TimelineTabContentView.prototype._toggleRecording):
805 (WebInspector.TimelineTabContentView.prototype._recordButtonClicked):
806 (WebInspector.TimelineTabContentView.prototype._recordingsTreeSelectionDidChange):
807 (WebInspector.TimelineTabContentView.prototype._recordingCreated):
808 (WebInspector.TimelineTabContentView.prototype._addRecording):
809 (WebInspector.TimelineTabContentView.prototype._recordingCountChanged):
810 (WebInspector.TimelineTabContentView.prototype._recordingLoaded):
811 Implementations copied from the sidebar panel.
813 (WebInspector.TimelineTabContentView.prototype._recordingSelected):
814 Implementation similar to that which existed in the sidebar panel, except
815 that logic related to instruments isn't needed. Updates to timeline view
816 filters will be implemented in a follow-up patch: https://bugs.webkit.org/show_bug.cgi?id=154924.
818 (WebInspector.TimelineTabContentView.prototype._viewModeSelected):
819 This method is now limited to the handling of the radio button event only.
820 Additional logic which existed in the sidebar panel's implementation has
821 been pushed into _changeViewMode, which does the actual work of toggling
824 (WebInspector.TimelineTabContentView.prototype._changeViewMode):
825 Updates the current view mode state. If triggered by a user selection (was
826 called by the radio button event handler), the correct timeline view for
827 the new mode is shown.
829 (WebInspector.TimelineTabContentView.prototype._showTimelineViewForType):
830 Helper function for showing the view for the specified timeline type, if
831 the timeline exists in the current recording. Otherwise the overview timeline
834 (WebInspector.TimelineTabContentView.prototype._displayedContentViewNavigationItemsDidChange):
835 Keep the view mode in sync with the content browser.
837 (WebInspector.TimelineTabContentView.prototype._getTimelineForCurrentContentView):
838 Helper function for getting the currently displayed timeline.
840 2016-03-02 Matt Baker <mattbaker@apple.com>
842 Web Inspector: Timelines UI redesign: add the timelines tree outline to the TimelineOverview
843 https://bugs.webkit.org/show_bug.cgi?id=153034
844 <rdar://problem/24195628>
846 Reviewed by Timothy Hatcher.
848 Move the Timelines tree outline to the overview, in preparation for <https://webkit.org/b/153036>.
850 * UserInterface/Views/OverviewTimelineView.css:
851 (.timeline-view.overview > .timeline-ruler > .header): Deleted.
852 (.timeline-view.overview > .timeline-ruler > .event-markers): Deleted.
853 These are now part of the default ruler style.
855 * UserInterface/Views/TimelineOverview.css:
856 (.timeline-overview > .tree-outline.timelines):
857 (.timeline-overview > .tree-outline.timelines::before):
858 (body.window-inactive .timeline-overview > .tree-outline.timelines):
859 (.timeline-overview.frames > .tree-outline.timelines):
860 (.timeline-overview > .tree-outline.timelines .close-button):
861 (.timeline-overview > .tree-outline.timelines .item.selected .close-button):
862 (.timeline-overview > .tree-outline.timelines .item:not(.selected):nth-child(even)):
863 (.timeline-overview > .tree-outline.timelines .item:not(.selected):not(:first-child)):
864 (.timeline-overview > .tree-outline.timelines .item.selected + .item):
865 (body.window-inactive .timeline-overview > .tree-outline.timelines .item.selected + .item):
866 (.timeline-overview > .tree-outline.timelines :focus .item.selected + .item):
867 (.timeline-overview > .scroll-container):
868 (.timeline-overview.frames > .scroll-container):
869 (.timeline-overview > .timeline-ruler):
870 (.timeline-overview.frames > .timeline-ruler):
871 (.timeline-overview > .timeline-ruler > .markers):
872 (.timeline-overview > .graphs-container):
873 (.timeline-overview.frames > .graphs-container):
874 Styles for the timelines tree outline. A content element is inserted before the
875 tree to fill the gap created by the timeline ruler. For now the tree has a fixed
876 width of 185px, and is hidden when displaying the FPS instrument.
878 * UserInterface/Views/TimelineOverview.js:
879 (WebInspector.TimelineOverview):
880 (WebInspector.TimelineOverview.prototype.get selectedTimeline):
881 (WebInspector.TimelineOverview.prototype.set selectedTimeline):
882 Make the selected timeline accessible to the parent view, since the overview doesn't
883 have a "represented object", or receive ContentView change notifications.
885 (WebInspector.TimelineOverview.prototype._instrumentAdded):
886 (WebInspector.TimelineOverview.prototype._instrumentRemoved):
887 (WebInspector.TimelineOverview.prototype._viewModeDidChange):
888 Add and remove instrument tree elements. Each tree element is created with a height
889 equal to it's overview graph, and is shown/hidden based on the current view mode.
891 (WebInspector.TimelineOverview.prototype._timelinesTreeSelectionDidChange):
892 Update the selected timeline and dispatch change event.
894 * UserInterface/Views/TimelineRecordingContentView.js:
895 (WebInspector.TimelineRecordingContentView):
896 (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
897 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
898 (WebInspector.TimelineRecordingContentView.prototype._timelineSelected):
899 Sync the overview's timeline selection with the current ContentView's represented object.
901 * UserInterface/Views/TimelineRuler.css:
902 (.timeline-ruler > .header):
903 (.timeline-ruler > .header > .divider > .label):
904 (.timeline-ruler > .selection-drag):
905 (.timeline-ruler > .selection-handle):
906 Ruler height changed to 23px, to be consistent with the DataGrid header.
908 * UserInterface/Views/TreeOutline.css:
909 (.tree-outline.large .item .icon):
910 Large icon style updated to match TimelineSidebarPanel.css. The 32px
911 size is outdated and no longer used.
913 * UserInterface/Views/Variables.css:
915 New color variables, used by TimelineOverview.css.
917 2016-02-29 Devin Rousso <dcrousso+webkit@gmail.com>
919 Web Inspector: Add direct number inputs to Bezier editor
920 https://bugs.webkit.org/show_bug.cgi?id=154809
921 <rdar://problem/24881465>
923 Reviewed by Timothy Hatcher.
925 * UserInterface/Base/Main.js:
926 (WebInspector._updateWindowKeydownListener):
927 Now only adds the shared event listener when the first keydown listener
928 is added via WebInspector.addWindowKeydownListener
930 * UserInterface/Controllers/CodeMirrorBezierEditingController.js:
931 (WebInspector.CodeMirrorBezierEditingController.prototype.popoverDidDismiss):
933 * UserInterface/Controllers/CodeMirrorEditingController.js:
934 (WebInspector.CodeMirrorEditingController.prototype.popoverDidDismiss):
935 (WebInspector.CodeMirrorEditingController.prototype.didDismissPopover):
936 Added function that is called when the popover is dismissed so that
937 removing event listeners is possible.
939 * UserInterface/Views/BezierEditor.css:
941 (.bezier-editor > .number-input-container):
942 (.bezier-editor > .number-input-container > input):
944 * UserInterface/Views/BezierEditor.js:
945 (WebInspector.BezierEditor.createControl):
946 (WebInspector.BezierEditor.createBezierInput):
947 (WebInspector.BezierEditor):
948 Added usage of Element.prototype.createChild for ease of readability.
949 Also added input elements for manually changing the values of each bezier
950 point's x and y values.
952 (WebInspector.BezierEditor.prototype.set bezier):
953 (WebInspector.BezierEditor.prototype.removeListeners):
954 (WebInspector.BezierEditor.prototype._handleMousedown):
955 (WebInspector.BezierEditor.prototype._updateBezier):
956 (WebInspector.BezierEditor.prototype._updateBezierPreview):
957 (WebInspector.BezierEditor.prototype._triggerPreviewAnimation):
958 (WebInspector.BezierEditor.prototype._handleNumberInputInput):
959 (WebInspector.BezierEditor.prototype._handleNumberInputKeydown):
960 (WebInspector.BezierEditor.prototype._changeBezierForInput):
961 Refactored code to make it more reusable, as well as adding event listeners
962 to the newly created inputs, including value chaning from the arrow keys.
964 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
965 (WebInspector.CSSStyleDeclarationTextEditor.prototype.didDismissPopover): Deleted.
968 * UserInterface/Views/InlineSwatch.js:
969 (WebInspector.InlineSwatch):
970 (WebInspector.InlineSwatch.prototype.didDismissPopover):
971 Removes any global event listeners added by the current editor if able.
973 (WebInspector.InlineSwatch.prototype._swatchElementClicked):
974 Now saves the current editor object as a member variable.
976 2016-02-28 Nikita Vasilyev <nvasilyev@apple.com>
978 Web Inspector: DataGrid's resizers aren't horizontally centered
979 https://bugs.webkit.org/show_bug.cgi?id=154787
980 <rdar://problem/24876901>
982 Reviewed by Timothy Hatcher.
984 * UserInterface/Views/DataGrid.css:
985 (.data-grid .resizer):
986 Use CSS transforms as margin-left doesn't support sub-pixel values.
988 2016-02-26 Nikita Vasilyev <nvasilyev@apple.com>
990 Web Inspector: Increase clickable area of the console prompt
991 https://bugs.webkit.org/show_bug.cgi?id=154719
992 <rdar://problem/24854538>
994 Reviewed by Timothy Hatcher.
996 Clicking on the area around CodeMirror element now moves
997 focus to the console prompt.
999 * UserInterface/Views/QuickConsole.js:
1000 (WebInspector.QuickConsole.prototype._handleMouseDown):
1001 Only capture mousedown events on .quick-console.
1002 Don't capture clicks on CodeMirror.
1004 * UserInterface/Views/QuickConsole.css:
1005 (.quick-console > .console-prompt):
1006 (.quick-console > .console-prompt > .CodeMirror):
1007 Make sure .console-prompt is never an event.target for _handleMouseDown.
1009 2016-02-26 Joseph Pecoraro <pecoraro@apple.com>
1011 Web Inspector: Remove unused member variables from overview graphs
1012 https://bugs.webkit.org/show_bug.cgi?id=154774
1014 Reviewed by Timothy Hatcher.
1016 * UserInterface/Views/LayoutTimelineOverviewGraph.js:
1017 (WebInspector.LayoutTimelineOverviewGraph.prototype.reset):
1018 * UserInterface/Views/ScriptTimelineOverviewGraph.js:
1019 (WebInspector.ScriptTimelineOverviewGraph.prototype.reset):
1021 2016-02-26 Nikita Vasilyev <nvasilyev@apple.com>
1023 REGRESSION (r196741): Web Inspector: Bottom section of Layers sidebar is 1px shorter than the console prompt
1024 https://bugs.webkit.org/show_bug.cgi?id=154773
1025 <rdar://problem/24873345>
1027 Reviewed by Timothy Hatcher.
1029 * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
1030 (.sidebar > .panel.details.layer-tree > .content):
1031 (.panel.details.layer-tree .bottom-bar):
1033 2016-02-26 Devin Rousso <dcrousso+webkit@gmail.com>
1035 Web Inspector: Custom transition bezier curve editor preview should loop when not editing curve
1036 https://bugs.webkit.org/show_bug.cgi?id=154738
1037 <rdar://problem/24861563>
1039 Reviewed by Timothy Hatcher.
1041 Added extra frames to bezier preview animation to allow it to infinitely
1042 repeat without being jarring to watch.
1044 * UserInterface/Views/BezierEditor.css:
1045 (.bezier-editor > .bezier-preview-timing.animate):
1046 (@keyframes bezierPreview):
1047 * UserInterface/Views/BezierEditor.js:
1049 2016-02-26 Devin Rousso <dcrousso+webkit@gmail.com>
1051 Web Inspector: Keyboard controls to nudge control points in custom transition bezier curve editor would be nice
1052 https://bugs.webkit.org/show_bug.cgi?id=154739
1053 <rdar://problem/24861498>
1055 Reviewed by Timothy Hatcher.
1057 Adds ability for user to nudge the most recently selected bezier control
1058 handle by using the arrow keys. Also makes the currently selected bezier
1059 control line snap to an axis, which is defined when the user mouses down,
1060 whenever the mouse is dragged while the shift key is pressed.
1063 * UserInterface/Views/BezierEditor.js:
1064 (WebInspector.BezierEditor):
1065 (WebInspector.BezierEditor.prototype.handleKeydownEvent):
1066 (WebInspector.BezierEditor.prototype._handleMouseup):
1067 (WebInspector.BezierEditor.prototype._updateControlPointsForMouseEvent):
1069 2016-02-26 Devin Rousso <dcrousso+webkit@gmail.com>
1071 Web Inspector: Option-clicking on the a CSS property sometimes doesn't work
1072 https://bugs.webkit.org/show_bug.cgi?id=154384
1073 <rdar://problem/24714755>
1075 Reviewed by Timothy Hatcher.
1077 It seems as though there were race conditions between CodeMirror's event
1078 and the native mousemove such that if CodeMirror fired second, the current
1079 candidate was cleared, and would not reset itself until the cursor was
1080 moved, at which point the same issue could happen. To fix this, the current
1081 candidate is no longer cleared by CodeMirror's event and is instead only
1082 modified by the native mouse-events.
1084 * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
1085 (WebInspector.CodeMirrorTokenTrackingController.prototype._hidePopover):
1087 2016-02-25 Nikita Vasilyev <nvasilyev@apple.com>
1089 Web Inspector: Unify selected item colors
1090 https://bugs.webkit.org/show_bug.cgi?id=154668
1091 <rdar://problem/24832178>
1093 Reviewed by Timothy Hatcher.
1095 Use the same CSS variable color for all selected items.
1097 * UserInterface/Views/TreeOutline.css:
1098 (.tree-outline:matches(:focus, .force-focus) .item.selected):
1099 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1100 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.selected):
1101 * UserInterface/Views/VisualStyleSelectorTreeItem.css:
1102 (.item.visual-style-selector-item.selected):
1103 * UserInterface/Views/VisualStyleTabbedPropertiesRow.css:
1104 (.visual-style-tabbed-properties-row > .visual-style-tabbed-properties-row-container > button.selected):
1106 2016-02-24 Joseph Pecoraro <pecoraro@apple.com>
1108 Web Inspector: Expose Proxy target and handler internal properties to Inspector
1109 https://bugs.webkit.org/show_bug.cgi?id=154663
1111 Reviewed by Timothy Hatcher.
1113 * UserInterface/Models/NativeFunctionParameters.js:
1114 * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1115 (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
1116 Improve the native parameter list for the global Reflect object methods.
1117 Include "enumerate" even though it is deprecated, because we implement it.
1119 2016-02-24 Devin Rousso <dcrousso+webkit@gmail.com>
1121 Web Inspector: Visual Styles sidebar should support multiple animations
1122 https://bugs.webkit.org/show_bug.cgi?id=154546
1123 <rdar://problem/24773861>
1125 Reviewed by Timothy Hatcher.
1127 * UserInterface/Views/VisualStyleDetailsPanel.js:
1128 (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
1129 Set additional flags on the optional properties of transition to ensure
1130 that the initial value of a new row is not considered invalid.
1132 (WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
1133 Added a comma-separated keyword list to provide support for multiple
1134 animations per rule.
1136 2016-02-24 Timothy Hatcher <timothy@apple.com>
1138 Web Inspector: Remove unused Profile.png images
1140 https://bugs.webkit.org/show_bug.cgi?id=154647
1141 rdar://problem/24820825
1143 Reviewed by Brian Burg.
1145 * UserInterface/Images/Profile.png: Removed.
1146 * UserInterface/Images/Profile@2x.png: Removed.
1147 * UserInterface/Images/gtk/Profile.png: Removed.
1148 * UserInterface/Images/gtk/Profile@2x.png: Removed.
1149 * UserInterface/Views/TimelineIcons.css:
1150 (.profile-icon .icon): Deleted.
1152 2016-02-24 Matt Baker <mattbaker@apple.com>
1154 Web Inspector: TimelineViews should use the recording's end time when entire ruler range is selected
1155 https://bugs.webkit.org/show_bug.cgi?id=154644
1156 <rdar://problem/24818442>
1158 Reviewed by Timothy Hatcher.
1160 * UserInterface/Views/TimelineRecordingContentView.js:
1161 (WebInspector.TimelineRecordingContentView):
1162 (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
1163 (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1164 Update current timeline view when entire range selected.
1166 (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1167 Live-update the OverviewTimelineView during recording when entire range selected.
1169 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineViewSelection):
1170 Update timeline view start and end times. When entire range selected, use the recording
1171 end time or current time (while capturing).
1173 2016-02-24 Timothy Hatcher <timothy@apple.com>
1175 Follow up fix for the TimelineRuler "select all" mode to fix zeroTime.
1177 https://bugs.webkit.org/show_bug.cgi?id=154561
1178 rdar://problem/24779872
1180 * UserInterface/Views/TimelineRuler.js:
1181 (WebInspector.TimelineRuler.prototype.set zeroTime): Change selectionStartTime
1182 before _zeroTime so the check for entireRangeSelected still works.
1184 2016-02-24 Matt Baker <mattbaker@apple.com>
1186 Web Inspector: TimelineRuler should have a "select all" mode
1187 https://bugs.webkit.org/show_bug.cgi?id=154561
1188 <rdar://problem/24779872>
1190 Reviewed by Timothy Hatcher.
1192 TimelineRuler is initialized with a selected range of [0, Number.MAX_VALUE),
1193 indicating the entire timeline is selected. This patch makes it possible to
1194 return the ruler to this state, after being overwritten by a custom selection.
1195 When no custom selection exists, the selection handles are hidden.
1197 * UserInterface/Views/TimelineRuler.css:
1198 (.timeline-ruler.selection-hidden > :matches(.selection-drag, .selection-handle, .shaded-area)):
1199 Style for hiding selection controls as needed.
1201 * UserInterface/Views/TimelineRuler.js:
1202 (WebInspector.TimelineRuler):
1203 Represent unbounded selection interval as [0, Number.MAX_VALUE).
1205 (WebInspector.TimelineRuler.prototype.set allowsTimeRangeSelection):
1206 Register double-click event listener.
1208 (WebInspector.TimelineRuler.prototype.set zeroTime):
1209 (WebInspector.TimelineRuler.prototype.get entireRangeSelected):
1210 (WebInspector.TimelineRuler.prototype.selectEntireRange):
1211 Let clients check and set the selection of the entire range without needing
1212 to use the internal sentinel values 0 and Number.MAX_VALUE.
1214 (WebInspector.TimelineRuler.prototype._updateSelection):
1215 Update ruler styles and dispatch selection change event when entire
1218 (WebInspector.TimelineRuler.prototype._handleDoubleClick):
1219 If a user-defined selection exists, select the entire range.
1221 2016-02-24 Nikita Vasilyev <nvasilyev@apple.com>
1223 Web Inspector: Dim selected items when docked Inspector window is inactive
1224 https://bugs.webkit.org/show_bug.cgi?id=154526
1225 <rdar://problem/24764365>
1227 Abstract selected item and SVG glyph colors into CSS variables.
1229 Reviewed by Timothy Hatcher.
1231 * UserInterface/Views/BezierEditor.css:
1232 (.bezier-editor > .bezier-preview > div):
1233 * UserInterface/Views/ButtonNavigationItem.css:
1234 (.navigation-bar .item.button > .glyph):
1235 (.navigation-bar .item.button:not(.disabled):active > .glyph):
1236 (.navigation-bar .item.button:not(.disabled):matches(:focus, .activate.activated, .radio.selected) > .glyph):
1237 (.navigation-bar .item.button:not(.disabled):active:matches(:focus, .activate.activated, .radio.selected) > .glyph):
1238 (.navigation-bar .item.button.disabled > .glyph):
1239 * UserInterface/Views/ButtonToolbarItem.css:
1240 (.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated) > .glyph):
1241 (.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated) > .glyph):
1242 * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1243 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected):
1244 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover):
1245 * UserInterface/Views/ConsoleMessageView.css:
1246 (.console-user-command.special-user-log > .console-message-text):
1247 * UserInterface/Views/DOMTreeOutline.css:
1248 (.tree-outline.dom li.pseudo-class-enabled > .selection::before):
1249 * UserInterface/Views/Main.css:
1250 (input[type=range]::-webkit-slider-runnable-track::before):
1251 * UserInterface/Views/RadioButtonNavigationItem.css:
1252 (.navigation-bar .item.radio.button.text-only:hover):
1253 (.navigation-bar .item.radio.button.text-only.selected):
1254 (.navigation-bar .item.radio.button.text-only:active):
1255 (.navigation-bar .item.radio.button.text-only.selected:active):
1256 * UserInterface/Views/ScopeBar.css:
1257 (.scope-bar > li.multiple:matches(.selected, :hover, :active) > .arrows):
1258 (.scope-bar > li:hover):
1259 (.scope-bar > li.selected):
1260 (.scope-bar > li:active):
1261 (.scope-bar > li.selected:active):
1262 * UserInterface/Views/Variables.css:
1264 (body.window-inactive):
1265 * UserInterface/Views/VisualStyleDetailsPanel.css:
1266 (.sidebar > .panel.details.css-style .visual > .details-section .details-section.has-set-property > .header > span::after):
1267 * UserInterface/Views/VisualStyleKeywordIconList.css:
1268 (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon:matches(.computed, .selected)):
1269 (.visual-style-property-container.keyword-icon-list > .visual-style-property-value-container > .keyword-icon-list-container > .keyword-icon.selected):
1271 2016-02-23 Dan Bernstein <mitz@apple.com>
1273 [Xcode] Linker errors display mangled names, but no longer should
1274 https://bugs.webkit.org/show_bug.cgi?id=154632
1276 Reviewed by Sam Weinig.
1278 * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES.
1280 2016-02-22 Matt Baker <mattbaker@apple.com>
1282 Web Inspector: Timelines sidebar and overview attempt to access undefined properties when FPS instrument is absent
1283 https://bugs.webkit.org/show_bug.cgi?id=154567
1284 <rdar://problem/24781536>
1286 Reviewed by Joseph Pecoraro.
1288 * UserInterface/Views/TimelineOverview.js:
1289 (WebInspector.TimelineOverview):
1290 The viewMode property should be in a valid state before attempting
1291 to access the current view mode settings.
1293 * UserInterface/Views/TimelineSidebarPanel.js:
1294 (WebInspector.TimelineSidebarPanel.prototype.get minimumWidth):
1295 (WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
1296 (WebInspector.TimelineSidebarPanel):
1297 Added missing checks for FPSInstrument support.
1299 2016-02-22 Nikita Vasilyev <nvasilyev@apple.com>
1301 REGRESSION (r196620): Web Inspector: Filter bar in the left sidebar is 1px shorter than the console prompt
1302 https://bugs.webkit.org/show_bug.cgi?id=154529
1304 Reviewed by Timothy Hatcher.
1306 * UserInterface/Views/NavigationSidebarPanel.css:
1307 (.sidebar > .panel.navigation > .overflow-shadow):
1309 2016-02-20 Devin Rousso <dcrousso+webkit@gmail.com>
1311 Web Inspector: Opacity slider thumb sometimes goes past the bar in Visual Styles sidebar
1312 https://bugs.webkit.org/show_bug.cgi?id=154497
1314 Reviewed by Timothy Hatcher.
1316 Since WebInspector.Slider uses CSS transforms to move the slider knob
1317 along the track, if the width of the track changes then the position
1318 of the knob would stay the same since it was translated instead of
1319 adjusting its position relative to the new width.
1321 * UserInterface/Views/Slider.js:
1322 (WebInspector.Slider.prototype.recalculateKnobX):
1323 Resets the maxX value to 0 to ensure that a new maxX is calculated with
1326 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
1327 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set specifiedWidth): Deleted.
1328 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.recalculateWidth):
1330 * UserInterface/Views/VisualStyleDetailsPanel.js:
1331 (WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
1332 (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
1333 (WebInspector.VisualStyleDetailsPanel.prototype._populateDisplaySection):
1335 * UserInterface/Views/VisualStyleUnitSlider.js:
1336 (WebInspector.VisualStyleUnitSlider.prototype.recalculateWidth):
1338 2016-02-20 Devin Rousso <dcrousso+webkit@gmail.com>
1340 Web Inspector: Visual Styles: Modifying background expands Font section
1341 https://bugs.webkit.org/show_bug.cgi?id=154491
1342 <rdar://problem/24755440>
1344 Reviewed by Timothy Hatcher.
1346 When the user selects a new style, the Visual sidebar examines the property
1347 editors in each subsection to see if any have a value and expands/collapses
1348 the subsection accordingly. This issue was happening because that logic was
1349 also being triggered when the user didn't select a new style, which is
1350 controlled by DOMNodeStyles and the significantChange value in refresh().
1352 * UserInterface/Base/Utilities.js:
1353 (String.prototype.toCamelCase):
1354 Added utility function to transform a string into a camel-cased version.
1356 * UserInterface/Models/DOMNodeStyles.js:
1357 (WebInspector.DOMNodeStyles.prototype.refresh.fetchedComputedStyle):
1358 Dropped unused variable and added checks to make sure doubly-matching styles
1359 don't count as a significant change and cause refreshes of the styles sidebar.
1361 * UserInterface/Views/VisualStyleDetailsPanel.js:
1362 (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
1363 If this function has an event, meaning it was triggered by a newly selected
1364 selector in the selector section, loop through each subsection and perform
1365 the logic described above, but instead only to open sections.
1367 (WebInspector.VisualStyleDetailsPanel.prototype._generateSection.replaceDashWithCapital): Deleted.
1368 (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
1369 Removed logic that was already being called by _sectionModified().
1371 2016-02-20 Devin Rousso <dcrousso+webkit@gmail.com>
1373 Web Inspector: Text Align segmented control blinks while editing other properties in Visual Styles sidebar
1374 https://bugs.webkit.org/show_bug.cgi?id=154487
1375 <rdar://problem/24754703>
1377 Reviewed by Timothy Hatcher.
1379 The icon list property editor blinking issue was caused by the fact that
1380 the selected value was toggled on/off each time the value was set on the
1381 editor. In order to prevent this, the logic for the setter value() was
1382 modified to just match a keyword icon to the given value and select it.
1384 * UserInterface/Views/VisualStyleKeywordIconList.js:
1385 (WebInspector.VisualStyleKeywordIconList.prototype.set value):
1386 (WebInspector.VisualStyleKeywordIconList.prototype._handleKeywordChanged):
1388 2016-02-20 Nikita Vasilyev <nvasilyev@apple.com>
1390 Web Inspector: Placeholder text in Visual Styles sidebar table row should be white
1391 https://bugs.webkit.org/show_bug.cgi?id=154488
1392 <rdar://problem/24754715>
1394 Reviewed by Timothy Hatcher.
1396 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1397 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
1399 2016-02-19 Nikita Vasilyev <nvasilyev@apple.com>
1401 Web Inspector: Inherited selector rows have text too low
1402 https://bugs.webkit.org/show_bug.cgi?id=154489
1403 <rdar://problem/24754774>
1405 Reviewed by Timothy Hatcher.
1407 * UserInterface/Views/VisualStyleSelectorSection.css:
1408 (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
1410 2016-02-19 Devin Rousso <dcrousso+webkit@gmail.com>
1412 Web Inspector: Color picker in Visual Styles sidebar should not default to zero alpha
1413 https://bugs.webkit.org/show_bug.cgi?id=154474
1414 <rdar://problem/24750217>
1416 Reviewed by Timothy Hatcher.
1418 * UserInterface/Views/InlineSwatch.js:
1419 (WebInspector.InlineSwatch.prototype._fallbackValue):
1420 Changed the fallback value for color from transparent to white so that
1421 the color picker starts out with an alpha value of 1.
1423 (WebInspector.InlineSwatch.prototype._handleContextMenuEvent):
1424 Prevents context menu events from having an effect if there is no value
1427 2016-02-19 Matt Baker <mattbaker@apple.com>
1429 Web Inspector: CSS var() function should be syntax highlighted
1430 https://bugs.webkit.org/show_bug.cgi?id=154406
1431 <rdar://problem/24726136>
1433 Reviewed by Timothy Hatcher.
1435 * UserInterface/Models/CSSCompletions.js:
1436 Added "var" to CodeMirror value keywords for syntax highlighting.
1438 * UserInterface/Models/CSSKeywordCompletions.js:
1439 (WebInspector.CSSKeywordCompletions.forProperty):
1440 Added "var" to accepted keywords for auto-completion.
1442 2016-02-18 Devin Rousso <dcrousso+webkit@gmail.com>
1444 Web Inspector: Styles Sidebar focus jumps when trying to edit a color
1445 https://bugs.webkit.org/show_bug.cgi?id=154404
1446 <rdar://problem/24725744>
1448 Reviewed by Timothy Hatcher.
1450 Clicking an inline swatch in the CSS Rules sidebar causes any focused
1451 editor, if any, to become blurred and therefore fire its handler function.
1452 This causes an issue because when a CodeMirror instance in the styles
1453 sidebar becomes blurred, it is possible for the entire Rules sidebar to
1454 refresh and recreate all of the sections (r187714), meaning that it will
1455 reselect whatever editor was previously selected before the refresh,
1456 causing the swatch popup to be blurred and therefore dismiss.
1458 * UserInterface/Views/CSSStyleDeclarationSection.js:
1459 (WebInspector.CSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorBlurActiveEditor):
1461 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1462 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createInlineSwatches.createSwatch):
1463 (WebInspector.CSSStyleDeclarationTextEditor.prototype._inlineSwatchBeforeClicked):
1464 Add listener for new event and call to delegate function for handling it.
1466 * UserInterface/Views/InlineSwatch.js:
1467 (WebInspector.InlineSwatch.prototype._swatchElementClicked):
1468 Now fires an event before the clicked logic happens, but still after the
1469 click event is fired on the element.
1471 * UserInterface/Views/RulesStyleDetailsPanel.js:
1472 (WebInspector.RulesStyleDetailsPanel.prototype.cssStyleDeclarationSectionBlurActiveEditor):
1473 Clears the previously focused editor so when a reset happens no editor
1476 2016-02-18 Joseph Pecoraro <pecoraro@apple.com>
1478 Web Inspector: Add Native Parameter Lists to Console prototype functions
1479 https://bugs.webkit.org/show_bug.cgi?id=154419
1480 <rdar://problem/24730314>
1482 Reviewed by Timothy Hatcher.
1484 * UserInterface/Models/NativeFunctionParameters.js:
1486 2016-02-18 Nikita Vasilyev <nvasilyev@apple.com>
1488 Web Inspector: Align console prompt with execution context selector
1489 https://bugs.webkit.org/show_bug.cgi?id=154381
1491 Reviewed by Timothy Hatcher.
1493 * UserInterface/Views/QuickConsole.css:
1494 (.quick-console > .console-prompt > .CodeMirror):
1495 (.quick-console .execution-context):
1497 2016-02-18 Devin Rousso <dcrousso+webkit@gmail.com>
1499 Web Inspector: Storage tab navigation bar should fit on a single line
1500 https://bugs.webkit.org/show_bug.cgi?id=152473
1501 <rdar://problem/24023435>
1503 Reviewed by Timothy Hatcher.
1505 * UserInterface/Base/Utilities.js:
1507 Reworked logic to ensure that the returned value is never less than the
1508 given minimum value.
1510 2016-02-17 Devin Rousso <dcrousso+webkit@gmail.com>
1512 Web Inspector: In the styles sidebar, Option-clicking on --css-variable should jump to its definition
1513 https://bugs.webkit.org/show_bug.cgi?id=154082
1514 <rdar://problem/24593361>
1516 Reviewed by Timothy Hatcher.
1518 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
1519 (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked.showRangeInSourceCode):
1520 (WebInspector.CSSStyleDeclarationTextEditor.prototype.tokenTrackingControllerHighlightedRangeWasClicked):
1521 Now tests to see if the highlighted token was a CSS variable and if
1522 so, attempts to show the declaration of the CSS variable instead of
1523 the location where it is used.
1525 2016-02-17 Nikita Vasilyev <nvasilyev@apple.com>
1527 REGRESSION (r196620): Web Inspector: DataGrid headers and resizers are misaligned when the scrollbar is visible
1528 https://bugs.webkit.org/show_bug.cgi?id=154280
1529 <rdar://problem/24670567>
1531 Reviewed by Timothy Hatcher.
1533 Revert back to "overflow-y: overlay".
1535 * UserInterface/Views/DataGrid.css:
1536 (.data-grid .data-container):
1537 * UserInterface/Views/DatabaseContentView.css:
1538 (.storage-view.query):
1540 2016-02-17 Nikita Vasilyev <nvasilyev@apple.com>
1542 REGRESSION (r196620): Web Inspector: When the scrollbars are always visible, the console prompt is 1px taller
1543 https://bugs.webkit.org/show_bug.cgi?id=154328
1544 <rdar://problem/24692996>
1546 Introduce a CSS variable to ensure that the quick console is the
1547 same height as the bottom right section of the styles sidebar.
1549 Reviewed by Timothy Hatcher.
1551 * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1552 (.sidebar > .panel.details.css-style > .content ~ .options-container):
1553 (.sidebar > .panel.details.css-style > .content ~ .class-list-container):
1554 * UserInterface/Views/QuickConsole.css:
1556 * UserInterface/Views/Variables.css:
1559 2016-02-17 Devin Rousso <dcrousso+webkit@gmail.com>
1561 Web Inspector: Add Context menu separators to Styles sidebar
1562 https://bugs.webkit.org/show_bug.cgi?id=154360
1564 Reviewed by Joseph Pecoraro.
1566 In the Styles sidebar, there are three main sections for the context menu:
1567 - Copy and Duplicate/Show-source
1568 - Add pseudo-class rules
1569 - Add/Select pseudo-element rules
1570 These three sections were all put together in the same context menu, which
1571 was very crowded as a result. Separators have been added to make it so that
1572 these three sections are now separated and clearly show their different uses.
1574 * UserInterface/Views/CSSStyleDeclarationSection.js:
1575 (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
1577 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
1578 (WebInspector.VisualStyleSelectorTreeItem.prototype._handleContextMenuEvent):
1580 2016-02-17 Matt Baker <mattbaker@apple.com>
1582 Web Inspector: add CSS variables for common border/background colors
1583 https://bugs.webkit.org/show_bug.cgi?id=154302
1584 <rdar://problem/24680944>
1586 Reviewed by Timothy Hatcher.
1588 Added CSS variables for commonly used border and background colors, and removed
1589 duplicate CSS variables with less generic names. Inactive border colors declared in
1590 rules with a body.window-inactive selector have been removed. A new rule using this
1591 selector in Variables.css sets "--border-color" to the inactive color.
1593 * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
1594 (.sidebar > .panel.details.css-style > .content > .pseudo-classes):
1595 (.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
1596 (.sidebar > .panel.details.css-style > .content.filter-in-progress .style-declaration-section:not(.filter-section-has-label)):
1597 * UserInterface/Views/DataGrid.css:
1598 (.data-grid.inline):
1600 (.data-grid :matches(th, td):not(:last-child)):
1601 (body.window-inactive .data-grid th): Deleted.
1602 (body.window-inactive .data-grid :matches(th, td):not(:last-child)): Deleted.
1603 * UserInterface/Views/DebuggerSidebarPanel.css:
1604 (.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
1605 * UserInterface/Views/DetailsSection.css:
1607 (.details-section .details-section:first-child):
1608 (.details-section > .header):
1609 (.details-section > .content > .group):
1610 (.details-section > .content > .group:nth-child(even) > .row:matches(.simple:first-child > *, :not(.simple):first-child)):
1611 * UserInterface/Views/FilterBar.css:
1613 * UserInterface/Views/FindBanner.css:
1615 (body.window-inactive .find-banner): Deleted.
1616 * UserInterface/Views/LayerTreeDetailsSidebarPanel.css:
1617 (.panel.details.layer-tree .bottom-bar):
1618 * UserInterface/Views/Main.css:
1619 (body.docked.bottom):
1620 (body.docked.right):
1621 (#split-content-browser):
1622 (#split-content-browser > .navigation-bar):
1623 (body.window-inactive.docked.bottom): Deleted.
1624 (body.window-inactive.docked.right): Deleted.
1625 (body.window-inactive #split-content-browser): Deleted.
1626 * UserInterface/Views/MemoryCategoryView.css:
1627 (.memory-category-view):
1628 (.memory-category-view > .details):
1629 (body.window-inactive .memory-category-view): Deleted.
1630 (body.window-inactive .memory-category-view > .details): Deleted.
1631 * UserInterface/Views/MemoryTimelineView.css:
1632 (.timeline-view.memory):
1633 (.timeline-view.memory > .content > .overview):
1634 (.timeline-view.memory > .content > .details > .subtitle):
1635 (.timeline-view.memory > .content > .overview > .divider):
1636 (body.window-inactive .timeline-view.memory): Deleted.
1637 (body.window-inactive .timeline-view.memory > .content > .overview): Deleted.
1638 (body.window-inactive .timeline-view.memory > .content > .details > .subtitle): Deleted.
1639 (body.window-inactive .timeline-view.memory > .content > .overview > .divider): Deleted.
1640 * UserInterface/Views/NavigationBar.css:
1642 (body.window-inactive .navigation-bar): Deleted.
1643 * UserInterface/Views/NavigationSidebarPanel.css:
1644 (.sidebar > .panel.navigation > .overflow-shadow):
1645 (body.window-inactive .sidebar > .panel.navigation > .overflow-shadow): Deleted.
1646 * UserInterface/Views/NetworkSidebarPanel.css:
1647 (.sidebar > .panel.navigation.network > .title-bar):
1648 (body.window-inactive .sidebar > .panel.navigation.network > .title-bar): Deleted.
1649 * UserInterface/Views/OverviewTimelineView.css:
1650 (.timeline-view.overview > .timeline-ruler > .header):
1651 (body.window-inactive .timeline-view.overview > .timeline-ruler > .header): Deleted.
1652 * UserInterface/Views/QuickConsole.css:
1654 (body.window-inactive .quick-console): Deleted.
1655 * UserInterface/Views/Sidebar.css:
1659 (body.window-inactive .sidebar.left): Deleted.
1660 (body.window-inactive .sidebar.right): Deleted.
1661 * UserInterface/Views/TimelineDataGrid.css:
1662 (.data-grid.timeline th):
1663 (body.window-inactive .data-grid.timeline th): Deleted.
1664 * UserInterface/Views/TimelineRuler.css:
1665 (.timeline-ruler > .header):
1666 (body.window-inactive .timeline-ruler > .header): Deleted.
1667 * UserInterface/Views/TimelineSidebarPanel.css:
1668 (.sidebar > .panel.navigation.timeline > .title-bar):
1669 (.sidebar > .panel.navigation.timeline > .title-bar.timeline-events):
1670 (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar): Deleted.
1671 (body.window-inactive .sidebar > .panel.navigation.timeline > .title-bar.timeline-events): Deleted.
1672 * UserInterface/Views/Toolbar.css:
1673 (body.latest-mac .toolbar .dashboard-container):
1674 * UserInterface/Views/Variables.css:
1676 (body.window-inactive *):
1677 * UserInterface/Views/VisualStyleSelectorSection.css:
1678 (.details-section.visual-style-selector-section:not(.collapsed) > .header):
1679 (.details-section.visual-style-selector-section > .content > .selectors > .selector-list > .section-divider):
1681 2016-02-17 Matt Baker <mattbaker@apple.com>
1683 Web Inspector: Add singular and plural cases for "Ignore n times before stopping" label in breakpoint editor
1684 https://bugs.webkit.org/show_bug.cgi?id=154335
1685 <rdar://problem/24655491>
1687 Reviewed by Timothy Hatcher.
1689 * Localizations/en.lproj/localizedStrings.js:
1690 Added string for singular ignore count.
1692 * UserInterface/Controllers/BreakpointPopoverController.js:
1693 (WebInspector.BreakpointPopoverController.prototype._createPopoverContent):
1694 Remove unused variable "this._ignoreCount" and update ignore count text.
1696 (WebInspector.BreakpointPopoverController.prototype._popoverIgnoreInputChanged):
1697 Update ignore count text as value changes.
1699 (WebInspector.BreakpointPopoverController.prototype._updateIgnoreCountText):
1700 Set singular text when count === 1, otherwise set plural text.
1702 2016-02-16 Nikita Vasilyev <nvasilyev@apple.com>
1704 REGRESSION (r196620): Web Inspector: Selecting last message in the console makes the scrollbar visible
1705 https://bugs.webkit.org/show_bug.cgi?id=154326
1706 <rdar://problem/24692717>
1708 Reviewed by Timothy Hatcher.
1710 * UserInterface/Views/LogContentView.css:
1711 (.console-item.selected::after):
1712 Make sure the selected message marker (blue vertical line) doesn't
1713 go over the content view.
1715 2016-02-16 Joseph Pecoraro <pecoraro@apple.com>
1717 JSContext Inspector: Support for inline source maps
1718 https://bugs.webkit.org/show_bug.cgi?id=154303
1719 <rdar://problem/24670392>
1721 Reviewed by Timothy Hatcher.
1723 * UserInterface/Base/URLUtilities.js:
1725 Break a data URL into components.
1727 * UserInterface/Controllers/SourceMapManager.js:
1728 (WebInspector.SourceMapManager.prototype._loadAndParseSourceMap):
1729 Handle a data URL without using NetworkAgent. Also move references
1730 to a main frame after checking for NetworkAgent.
1732 * UserInterface/Models/SourceMap.js:
1733 (WebInspector.SourceMap.prototype.get sourceMappingBasePathURLComponents):
1734 * UserInterface/Models/SourceMapResource.js:
1735 (WebInspector.SourceMapResource.prototype.get sourceMapDisplaySubpath):
1736 Handle JavaScript debuggable script URLs which may not be complete URLs.
1738 (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
1739 Also handle if NetworkAgent does not exist.
1741 * UserInterface/Views/ResourceSidebarPanel.js:
1742 (WebInspector.ResourceSidebarPanel):
1743 When connected to a JavaScript debuggable we were hiding disclosure
1744 triangles as we did not expect resources to have subresources. If
1745 a SourceMap is added, show them again.
1747 2016-02-16 Nikita Vasilyev <nvasilyev@apple.com>
1749 Web Inspector: Increase the width of the find banner's search field
1750 https://bugs.webkit.org/show_bug.cgi?id=154284
1752 Reviewed by Timothy Hatcher.
1754 * UserInterface/Views/FindBanner.css:
1755 (.find-banner > input[type="search"]):
1756 Keep the minimum width the same as the current width.
1758 (body .find-banner.console-find-banner):
1759 Overwrite ".navigation-bar .item {flex-wrap: nowrap}".
1761 2016-02-15 Nikita Vasilyev <nvasilyev@apple.com>
1763 Web Inspector: Non-overlay scrollbars obscure the ends of lines in the console and sidebars
1764 https://bugs.webkit.org/show_bug.cgi?id=154276
1766 Reviewed by Timothy Hatcher.
1768 * UserInterface/Views/DataGrid.css:
1769 (.data-grid .data-container):
1770 * UserInterface/Views/DatabaseContentView.css:
1771 (.storage-view.query):
1772 * UserInterface/Views/LogContentView.css:
1773 (.content-view.log):
1774 Replace all occurrences of "overflow-y: overlay" with "overflow-y: auto".
1776 2016-02-15 Devin Rousso <dcrousso+webkit@gmail.com>
1778 Web Inspector: Visual sidebar minor regression fixes
1779 https://bugs.webkit.org/show_bug.cgi?id=154237
1780 <rdar://problem/24653135>
1782 Reviewed by Timothy Hatcher.
1784 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
1785 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-special-property-placeholder):
1786 Do not display the placeholder, as it is not used in comma separated value
1789 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle::before):
1790 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle): Deleted.
1791 Added ::before to get rid of the "-" on subtitle elements (r196266).
1793 * UserInterface/Views/VisualStyleDetailsPanel.js:
1794 (WebInspector.VisualStyleDetailsPanel.prototype.widthDidChange):
1795 Recalculates the width for all comma separated value elements (r196266).
1797 (WebInspector.VisualStyleDetailsPanel.prototype._updateSections):
1798 Only open/close sections with properties that have values when a new node
1799 or selector item is selected.
1801 (WebInspector.VisualStyleDetailsPanel.prototype._populateBorderSection):
1802 Make copies of the default unit lists to prevent modifying the values used
1803 later in other sections (r194728).
1805 2016-02-15 Matt Baker <mattbaker@apple.com>
1807 Web Inspector: eliminate the linear and rendering frames TimelineOverview subclasses
1808 https://bugs.webkit.org/show_bug.cgi?id=154000
1809 <rdar://problem/24553105>
1811 Reviewed by Timothy Hatcher.
1813 This patch eliminates the TimelineOverview subclasses, and moves logic for switching between
1814 a time-based or frame-based graph into the overview itself. The values of the overview's start
1815 time, current time, and end time now match the values in the timeline recording regardless of the
1816 current view mode. When viewing the rendering frames graph, the recording times are ignored and
1817 all frames are included. The overview maintains separate zoom level and ruler selection settings
1820 * UserInterface/Main.html:
1821 * UserInterface/Views/LinearTimelineOverview.js: Removed.
1822 * UserInterface/Views/RenderingFrameTimelineOverview.js: Removed.
1823 Removed TimelineOverview subclasses.
1825 * UserInterface/Views/RenderingFrameTimelineOverviewGraph.js:
1826 (WebInspector.RenderingFrameTimelineOverviewGraph.prototype.get height):
1827 Set FPS graph height to 108 pixels.
1829 * UserInterface/Views/TimelineOverview.css:
1830 (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
1831 (.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:not(:first-child)):
1832 (.timeline-overview > .graphs-container > .timeline-overview-graph:nth-child(even)): Deleted.
1833 (.timeline-overview > .graphs-container > .timeline-overview-graph:not(:first-child)): Deleted.
1834 Disable alternating graph styles when showing FPS instrument.
1836 * UserInterface/Views/TimelineOverview.js:
1837 (WebInspector.TimelineOverview):
1838 Create separate settings for timelines and FPS view modes.
1839 (WebInspector.TimelineOverview.prototype.get viewMode):
1840 (WebInspector.TimelineOverview.prototype.set viewMode):
1841 (WebInspector.TimelineOverview.prototype.set startTime):
1842 Adjust the current ruler selection when start time changes. Not necessary
1843 when showing the FPS instrument, which doesn't have a start time.
1844 (WebInspector.TimelineOverview.prototype.get secondsPerPixel):
1845 (WebInspector.TimelineOverview.prototype.set secondsPerPixel):
1846 Now a wrapper around the corresponding view mode setting.
1847 (WebInspector.TimelineOverview.prototype.set pixelAlignDuration):
1848 (WebInspector.TimelineOverview.prototype.get scrollStartTime):
1849 (WebInspector.TimelineOverview.prototype.set scrollStartTime):
1850 Now a wrapper around the corresponding view mode setting.
1851 (WebInspector.TimelineOverview.prototype.get visibleDuration):
1852 (WebInspector.TimelineOverview.prototype.get height):
1853 Return the sum height of all visible overview graphs.
1854 (WebInspector.TimelineOverview.prototype.shown):
1855 Show overview graphs for the current view mode.
1856 (WebInspector.TimelineOverview.prototype.hidden):
1857 (WebInspector.TimelineOverview.prototype.reset):
1858 (WebInspector.TimelineOverview.prototype.recordWasFiltered):
1859 (WebInspector.TimelineOverview.prototype.selectRecord):
1860 (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
1861 (WebInspector.TimelineOverview.prototype.layout):
1862 Layout for both view modes is largely identical, and differs only in the treatment
1863 of the overview's start time, current time, and end time. Time-based instruments
1864 use time values from the recording, while the FPS instrument has a fixed start time
1865 of zero, and a current and end time pinned to the last rendering frame.
1866 (WebInspector.TimelineOverview.prototype._handleScrollEvent):
1867 (WebInspector.TimelineOverview.prototype._handleWheelEvent):
1868 (WebInspector.TimelineOverview._handleGestureStart):
1869 (WebInspector.TimelineOverview.prototype._handleGestureChange):
1870 (WebInspector.TimelineOverview.prototype._instrumentAdded):
1871 (WebInspector.TimelineOverview.prototype._instrumentRemoved):
1872 (WebInspector.TimelineOverview.prototype._timelineRulerMouseClicked):
1873 (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
1874 Save the selection for the current view mode.
1875 (WebInspector.TimelineOverview.prototype._recordSelected):
1876 (WebInspector.TimelineOverview.prototype._resetSelection.reset):
1877 (WebInspector.TimelineOverview.prototype._resetSelection):
1878 (WebInspector.TimelineOverview.prototype._canShowTimelineType):
1879 (WebInspector.TimelineOverview.prototype._viewModeDidChange):
1880 Sets zoom level, ruler selection, and graph visibility based on current view mode.
1881 (WebInspector.TimelineOverview.prototype._createViewModeSettings):
1882 Helper function for creating an object to track the zoom level and ruler
1883 selection of each view mode.
1884 (WebInspector.TimelineOverview.prototype.get _currentSettings):
1885 Internal getter for retrieving the settings for the current view mode.
1886 (WebInspector.TimelineOverview.prototype.canShowTimeline): Deleted.
1887 Not needed now that the overview contains all timelines.
1889 * UserInterface/Views/TimelineOverviewGraph.js:
1890 (WebInspector.TimelineOverviewGraph):
1891 (WebInspector.TimelineOverviewGraph.prototype.shown):
1892 (WebInspector.TimelineOverviewGraph.prototype.hidden):
1893 Toggle CSS hidden class.
1895 * UserInterface/Views/TimelineRecordFrame.js:
1896 No need to query offsetHeight now that TimelineOverviewGraph has a height property.
1898 * UserInterface/Views/TimelineRecordingContentView.js:
1899 (WebInspector.TimelineRecordingContentView):
1900 Create a single timeline overview.
1901 (WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
1902 (WebInspector.TimelineRecordingContentView.prototype.shown):
1903 (WebInspector.TimelineRecordingContentView.prototype.hidden):
1904 (WebInspector.TimelineRecordingContentView.prototype.recordWasFiltered):
1905 (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
1906 Update the timeline overview's mode based on the current timeline view.
1907 (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
1908 (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1909 Removed special handling for the FPS overview.
1910 Removed selection start time adjustment, which is now handled internally by TimelineOverview.
1911 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
1912 (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
1913 (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1914 (WebInspector.TimelineRecordingContentView.prototype._updateFrameSelection):
1916 * UserInterface/Views/TimelineSidebarPanel.js:
1917 (WebInspector.TimelineSidebarPanel):
1918 (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
1919 (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
1920 (WebInspector.TimelineSidebarPanel.prototype._renderingFrameTimelineTimesUpdated):
1921 (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
1922 Refresh the view mode when the content view changes.
1923 (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
1924 (WebInspector.TimelineSidebarPanel.prototype._viewModeSelected):
1925 (WebInspector.TimelineSidebarPanel.prototype._viewModeForTimeline):
1926 (WebInspector.TimelineSidebarPanel.prototype._updateViewModeIfNeeded):
1927 Sync the tree outline, frames chart, and navigation bar with the current view mode.
1928 (WebInspector.TimelineSidebarPanel.prototype.shown):
1929 Refreshing the frame selection is unnecessary. It's updated by the recording content
1930 view whenever the ruler selection changes.
1931 (WebInspector.TimelineSidebarPanel.prototype.get viewMode): Deleted.
1932 No longer public, since the timeline overview now owns the view mode. Internally the sidebar
1933 still tracks the current state so it can determine when the value has changed.
1934 (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
1935 (WebInspector.TimelineSidebarPanel.prototype.showTimelineViewForTimeline):
1936 The sidebar should only be synced to the overview after the content view has changed.
1937 (WebInspector.TimelineSidebarPanel.prototype.updateFrameSelection):
1938 Removed unnecessary assertion.
1939 (WebInspector.TimelineSidebarPanel.prototype._changeViewMode): Deleted.
1940 Replaced by _updateViewModeIfNeeded.
1942 2016-02-15 Timothy Hatcher <timothy@apple.com>
1944 Web Inspector: Show inherited CSS variables in the Style sidebar
1945 https://bugs.webkit.org/show_bug.cgi?id=154215
1946 rdar://problem/24644058
1948 Reviewed by Joseph Pecoraro.
1950 * UserInterface/Models/CSSProperty.js:
1951 (WebInspector.CSSProperty.isInheritedPropertyName): Added.
1952 (WebInspector.CSSProperty.prototype.update): Use WebInspector.CSSProperty.isInheritedPropertyName.
1953 * UserInterface/Models/DOMNodeStyles.js:
1954 (WebInspector.DOMNodeStyles.prototype._parseStyleDeclarationPayload): Use WebInspector.CSSProperty.isInheritedPropertyName.
1956 2016-02-15 Timothy Hatcher <timothy@apple.com>
1958 Web Inspector: Sidebars are defaulting to their minimum width, instead of a good width
1959 https://bugs.webkit.org/show_bug.cgi?id=154218
1960 rdar://problem/24644192
1962 Reviewed by Joseph Pecoraro.
1964 * UserInterface/Views/SidebarPanel.js:
1965 (WebInspector.SidebarPanel): Default the setting value to 300 instead of 0, so the minimum isn't used.
1967 2016-02-15 Timothy Hatcher <timothy@apple.com>
1969 Web Inspector: CSS variables are not formatted correctly
1970 https://bugs.webkit.org/show_bug.cgi?id=154217
1971 rdar://problem/24644154
1973 Reviewed by Joseph Pecoraro.
1975 * UserInterface/Views/CodeMirrorFormatters.js:
1976 (newlineBeforeToken): Check for `variable-2` token in the `maybeprop` state.
1978 2016-02-15 Timothy Hatcher <timothy@apple.com>
1980 Web Inspector: CodeMirror styles needs updated for CSS variables
1981 https://bugs.webkit.org/show_bug.cgi?id=154216
1982 rdar://problem/24644146
1984 Reviewed by Joseph Pecoraro.
1986 * UserInterface/Views/SyntaxHighlightingDefaultTheme.css:
1987 (.cm-s-default .cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Added .cm-variable-2.
1988 (.cm-s-default .basic-block-has-not-executed.cm-m-css:matches(.cm-atom, .cm-meta, .cm-variable-2, .cm-variable-3, .cm-property)): Ditto.
1990 2016-02-13 Dan Bernstein <mitz@apple.com>
1992 Removed the unused Frameworks group.
1994 Rubber-stamped by Sam Weinig.
1996 * WebInspectorUI.xcodeproj/project.pbxproj:
1998 2016-02-13 Devin Rousso <dcrousso+webkit@gmail.com>
2000 Web Inspector: DataGrid Header Cells should have Context Menu for Sorting
2001 https://bugs.webkit.org/show_bug.cgi?id=154050
2003 Reviewed by Joseph Pecoraro.
2005 * Localizations/en.lproj/localizedStrings.js:
2006 * UserInterface/Views/DataGrid.js:
2007 (WebInspector.DataGrid.prototype.set sortOrder):
2008 (WebInspector.DataGrid.prototype._toggledSortOrder):
2009 Returns the opposite sort order from the current order.
2011 (WebInspector.DataGrid.prototype._selectSortColumnAndSetOrder):
2012 Changes the selected column to the one with the specified identifier and
2013 then switches the sort order to the given order.
2015 (WebInspector.DataGrid.prototype._headerCellClicked):
2016 Moved logic for switching cells/sort-order to a separate function for
2019 (WebInspector.DataGrid.prototype._contextMenuInHeader):
2020 Adds context menu items on DataGrid header items to change the current
2021 sort order to the specified order. If the context menu is on the selected
2022 header item, only show the sort order that is not currently applied.
2024 2016-02-12 Joseph Pecoraro <pecoraro@apple.com>
2026 Web Inspector: Rename domAgent to domTreeManager in DOMNode
2027 https://bugs.webkit.org/show_bug.cgi?id=154194
2029 Reviewed by Timothy Hatcher.
2031 * UserInterface/Models/DOMNode.js:
2032 (WebInspector.DOMNode):
2034 2016-02-12 Joseph Pecoraro <pecoraro@apple.com>
2036 Web Inspector: Avoid including ESLint until it is used
2037 https://bugs.webkit.org/show_bug.cgi?id=154196
2039 Reviewed by Timothy Hatcher.
2041 * Scripts/copy-user-interface-resources.pl:
2042 Do not include ESLint in optimized output yet.
2044 * UserInterface/Controllers/AnalyzerManager.js:
2045 Do not reference `eslint` until we use it.
2047 * UserInterface/Main.html:
2048 Remove include to ESLint until we need it.
2050 2016-02-12 Joseph Pecoraro <pecoraro@apple.com>
2052 Web Inspector: Tabs: Conflicts with multiple Formatters per SourceCode
2053 https://bugs.webkit.org/show_bug.cgi?id=144717
2054 <rdar://problem/20845163>
2056 Reviewed by Timothy Hatcher.
2058 The underlying issue here is that each tab may create its own ContentView,
2059 and therefore SourceCodeTextEditor, per-SourceCode. Each SourceCodeTextEditor
2060 was mutating the SourceCode's state without listening for or expecting
2061 updates from the other. This causes a bunch of different issues:
2063 - editing in one tab does not get reflected in another tab for
2064 the same resource. This is common when using the Search tab
2065 to find and make an edit, then debug in another tab.
2067 - one tab may auto format (pretty print) a resource and set
2068 the formatter on the SourceCode to make SourceCodeLocations
2069 know about formatted locations. However, a jump to location
2070 that opens a new ContentView for the same Resource will
2071 start out un-formatted, and misunderstand the location.
2072 This often results in an unexpected jump to 0:0.
2074 The solution taken by this change is to have a single ContentView
2075 per represented object. When that ContentView gets shown in a new
2076 ContentViewContainer it gets transferred, leaving a tombstone in the
2077 previous ContentViewContainer that can be revived later. This keeps
2078 back foward lists with expected values. It also means there is a
2079 single ContentView that doesn't need to worry about having the
2080 state of its represented object getting overrun.
2082 Currently this makes the assumption that we won't ever show multiple
2083 ContentViews for the same represented object at the same time. This
2084 may need to change if we were to support split pane editor or
2085 something like that.
2087 This also makes the assumption that ContentViewContainer's showEntry
2088 and hideEntry do not modify the back forward list. That has not been
2089 the case, and I think it is safe to assume it will never be the case.
2091 The contracts this patch maintains:
2093 - a ContentView is always owned by one ViewContainer.
2094 This ViewContainer is the one showing the ContentView.
2096 - when another ViewContainer wants to share the ContentView
2097 ownership is transferred. Creating tombstones in the old
2098 ViewContainer and Reviving tombstones in the new ViewContainer.
2100 - ViewContainer's have a tombstone per-BackForwardEntry that
2101 references the ContentView.
2103 - In order to ensure a ContentView always gets closed, when
2104 the owning ViewContainer would close the ContentView it
2105 checks if it should instead transfer ownership of the
2106 ContentView to another interested ViewContainer.
2108 This also maintains the contract that a ContentView should only be
2109 closed once. When the ContentView is transferred between two
2110 ContentViewContainers it should hide/show from the old to the new.
2111 The last ContentViewContainer to reference a ContentView should
2112 be the one to close the ContentView.
2114 * UserInterface/Models/BackForwardEntry.js:
2115 (WebInspector.BackForwardEntry):
2116 (WebInspector.BackForwardEntry.prototype.get tombstone):
2117 (WebInspector.BackForwardEntry.prototype.set tombstone):
2118 (WebInspector.BackForwardEntry.prototype.prepareToShow):
2119 (WebInspector.BackForwardEntry.prototype.prepareToHide):
2120 Tombstone state and assertions that we don't show/hide tombstones,
2121 that should all be done before a back forward entry has become a tombstone.
2123 * UserInterface/Views/ContentView.js:
2124 (WebInspector.ContentView.contentViewForRepresentedObject):
2125 (WebInspector.ContentView.closedContentViewForRepresentedObject):
2126 (WebInspector.ContentView.resolvedRepresentedObjectForRepresentedObject):
2127 Helpers for getting / creating / clearing the single ContentView that
2128 is associated with a represented object.
2130 * UserInterface/Views/ContentViewContainer.js:
2131 (WebInspector.ContentViewContainer.prototype.contentViewForRepresentedObject):
2132 (WebInspector.ContentViewContainer.prototype.showContentView):
2133 Eliminate code that dealt with multiple content views per represented object.
2134 That is replaced by multiple ContentViewContainers per ContentView.
2136 (WebInspector.ContentViewContainer.prototype.replaceContentView):
2137 This is called in special places where we don't need to worry about a tombstone.
2138 It is an in replace of a content view.
2140 (WebInspector.ContentViewContainer.closeAllContentViewsOfPrototype):
2141 (WebInspector.ContentViewContainer.prototype.closeContentView):
2142 (WebInspector.ContentViewContainer.prototype.closeAllContentViews):
2143 (WebInspector.ContentViewContainer.prototype._disassociateFromContentView):
2144 Deal with closing BackForwardEntrys that are tombstones.
2146 (WebInspector.ContentViewContainer.prototype._takeOwnershipOfContentView):
2147 (WebInspector.ContentViewContainer.prototype._placeTombstonesForContentView):
2148 (WebInspector.ContentViewContainer.prototype._clearTombstonesForContentView):
2149 Helpers for transfering ownership of a ContentView to a ContentViewContainer.
2150 There is always one owner of the ContentView. Non-owners have tombstone
2151 BackForward entries.
2153 (WebInspector.ContentViewContainer.prototype._showEntry):
2154 If we are showing a tombstone, gain ownership.
2156 (WebInspector.ContentViewContainer.prototype._hideEntry):
2157 This may happen in closing, for simplicity we bail here instead of include
2158 messy logic at the call site. We would have already hidden this entry
2159 when making it a tombstone.
2161 2016-02-11 Joseph Pecoraro <pecoraro@apple.com>
2163 Web Inspector: SourceCodeTextEditor close() generates removeEventListener warnings
2164 https://bugs.webkit.org/show_bug.cgi?id=154150
2166 Reviewed by Timothy Hatcher.
2168 * UserInterface/Views/SourceCodeTextEditor.js:
2169 (WebInspector.SourceCodeTextEditor.prototype.close):
2170 Remove the event listeners in the cases that we would have added them.
2171 If we have SourceMap information we should remove the key listener,
2172 and if we don't we should remove the SourceMapAdded listener.
2174 2016-02-10 Timothy Hatcher <timothy@apple.com>
2176 Web Inspector: Add new icon for the Timeline Recording navigation bar item
2177 https://bugs.webkit.org/show_bug.cgi?id=154089
2178 rdar://problem/24595652
2180 Reviewed by Brian Burg.
2182 * UserInterface/Images/Stopwatch.png: Removed.
2183 * UserInterface/Images/Stopwatch@2x.png: Removed.
2184 * UserInterface/Images/Stopwatch.svg: Added.
2185 * UserInterface/Views/TimelineIcons.css:
2186 (.stopwatch-icon .icon): Use Stopwatch.svg.
2187 (body:not(.mac-platform, .windows-platform) .stopwatch-icon .icon): Added for GTK+.
2189 2016-02-10 Matt Baker <mattbaker@apple.com>
2191 Web Inspector: Switching actions in Edit Breakpoint popover causes a jerk
2192 https://bugs.webkit.org/show_bug.cgi?id=154093
2193 <rdar://problem/24597869>
2195 Reviewed by Timothy Hatcher.
2197 Adjusted CodeMirror eval editor styles to match vanilla input field.
2199 * UserInterface/Views/BreakpointActionView.css:
2200 (.breakpoint-action-eval-editor):
2202 2016-02-09 Joseph Pecoraro <pecoraro@apple.com>
2204 Regression: Web Inspector: Sometimes in Elements panel two elements showed as selected at the same time
2205 https://bugs.webkit.org/show_bug.cgi?id=149742
2206 <rdar://problem/24492481>
2208 Reviewed by Timothy Hatcher.
2210 * UserInterface/Views/DOMTreeElement.js:
2211 (WebInspector.DOMTreeElement.prototype.moveChild):
2212 Since removing and re-adding this tree element may forgot its
2213 entire child tree, re-select the selected child that may have
2214 just been lost in the shuffle.
2216 * UserInterface/Views/TreeOutline.js:
2217 (WebInspector.TreeOutline.prototype._forgetTreeElement):
2218 When forgetting the selected tree element, also deselect the
2219 forgotten tree element so it clears its selected state.
2221 2016-02-09 Joseph Pecoraro <pecoraro@apple.com>
2223 Web Inspector: Allow copying all headers in the request/response header tables
2224 https://bugs.webkit.org/show_bug.cgi?id=154048
2225 <rdar://problem/24576302>
2227 Reviewed by Timothy Hatcher.
2229 * Localizations/en.lproj/localizedStrings.js:
2230 New "Copy Table" string.
2232 * UserInterface/Views/DataGrid.js:
2233 (WebInspector.DataGrid):
2234 (WebInspector.DataGrid.prototype._contextMenuInHeader):
2235 Add context menu support for table header cells, and give them a
2236 "Copy Table" context menu if there is copyable data.
2238 (WebInspector.DataGrid.prototype._contextMenuInDataTable):
2239 Add "Copy Table" context menu for copyable rows.
2241 (WebInspector.DataGrid.prototype._copyTextForDataGridNode):
2242 (WebInspector.DataGrid.prototype._copyTextForDataGridHeaders):
2243 (WebInspector.DataGrid.prototype._copyTable):
2244 (WebInspector.DataGrid.prototype._hasCopyableData):
2245 Helpers for determining copyability and copying tab separated data.
2247 2016-02-09 Joseph Pecoraro <pecoraro@apple.com>
2249 Web Inspector: localStorage inspector very slow on big values
2250 https://bugs.webkit.org/show_bug.cgi?id=123750
2251 <rdar://problem/15384930>
2253 Reviewed by Timothy Hatcher.
2255 It is not useful to show very large strings in the DOM Storage DataGrid.
2256 This change truncates display strings to roughly 200 characters. If the
2257 developer really wants the full value of the string they can just access
2258 it through localStorage.
2260 * UserInterface/Models/DOMStorageObject.js:
2261 (WebInspector.DOMStorageObject.prototype.getEntries.innerCallback):
2262 (WebInspector.DOMStorageObject.prototype.getEntries):
2263 (WebInspector.DOMStorageObject.prototype.itemUpdated):
2266 * UserInterface/Views/DOMStorageContentView.js:
2267 (WebInspector.DOMStorageContentView):
2268 (WebInspector.DOMStorageContentView.prototype.itemRemoved):
2271 (WebInspector.DOMStorageContentView.prototype.itemAdded):
2272 (WebInspector.DOMStorageContentView.prototype.itemUpdated):
2273 (WebInspector.DOMStorageContentView.prototype._truncateValue):
2274 (WebInspector.DOMStorageContentView.prototype._populate):
2275 Whenever we get a value that we will display, truncate it to
2276 just 200 characters.
2278 2016-02-09 Joseph Pecoraro <pecoraro@apple.com>
2280 Web Inspector: Expiration column in Storage tab can't be sorted
2281 https://bugs.webkit.org/show_bug.cgi?id=154043
2282 <rdar://problem/24572272>
2284 Reviewed by Brian Burg.
2286 * UserInterface/Views/CookieStorageContentView.js:
2287 (WebInspector.CookieStorageContentView.prototype._sortDataGrid.expiresCompare):
2288 Sort Session as the shortest time, not the longest time. Use the
2289 cookie.expires date when sorting, not the locale string.
2291 2016-02-09 Joseph Pecoraro <pecoraro@apple.com>
2293 Web Inspector: Limit max and min zoom factor of Inspector
2294 https://bugs.webkit.org/show_bug.cgi?id=154041
2295 <rdar://problem/24571326>
2297 Reviewed by Brian Burg.
2299 Chose reasonable zoom levels that looked good to my eye and
2300 roughly matched Safari's page zoom levels.
2302 * UserInterface/Base/Main.js:
2303 (WebInspector.contentLoaded):
2304 Do not implicitly prevent default for zoom in/out keyboard shortcuts to
2305 allow for a system beep if we do not do anything.
2307 (WebInspector._increaseZoom):
2308 (WebInspector._decreaseZoom):
2309 Do not go beyond a max or min zoom level. Prevent default in the case
2310 where we actually zoom, but don't prevent default where we do not
2311 actually zoom to cause a system beep. Allow for a slight drift of
2312 the floating point value as it increases / decreases by 0.2 at the
2313 different zoom factors.
2315 (WebInspector._resetZoom):
2316 (WebInspector._showTabAtIndex):
2317 Remove redundant prevent default calls, since it would happen
2318 implicitly for these keyboard shortcuts.
2320 2016-02-08 Joseph Pecoraro <pecoraro@apple.com>
2322 Web Inspector: Uncaught exception merging script profiler records
2323 https://bugs.webkit.org/show_bug.cgi?id=154004
2325 Reviewed by Brian Burg.
2327 * UserInterface/Controllers/TimelineManager.js:
2328 (WebInspector.TimelineManager.prototype._mergeScriptProfileRecords):
2329 Stop if we've merged all script profiler records.
2331 2016-02-08 Joseph Pecoraro <pecoraro@apple.com>
2333 Web Inspector: Search doesn't seem to find text that is present in multiple places
2334 https://bugs.webkit.org/show_bug.cgi?id=154016
2335 <rdar://problem/23391307>
2337 Reviewed by Brian Burg.
2339 * UserInterface/Controllers/DebuggerManager.js:
2340 (WebInspector.DebuggerManager.prototype.get searchableScripts):
2341 * UserInterface/Views/SearchSidebarPanel.js:
2342 (WebInspector.SearchSidebarPanel.prototype.performSearch):
2343 Only search scripts with a URL. Don't search the potentially
2344 large number of anonymous scripts.
2346 2016-02-08 Joseph Pecoraro <pecoraro@apple.com>
2348 Web Inspector: Zooming in on the timeline graph does not increase its time resolution from minutes
2349 https://bugs.webkit.org/show_bug.cgi?id=154013
2350 <rdar://problem/23844527>
2352 Reviewed by Brian Burg.
2354 * UserInterface/Base/Utilities.js:
2355 (Number.secondsToString):
2356 Simplify logic and ensure that when under high resolution we
2357 don't go above seconds for our units.
2359 (Number.bytesToString):
2362 * UserInterface/Views/LinearTimelineOverview.js:
2363 (WebInspector.LinearTimelineOverview):
2364 Reduce the rather large maximum seconds per pixel from 60 seconds
2365 per pixel to 2 seconds per pixel. This means when the user zooms
2366 out of a timeline they don't see such large time values.
2368 2016-02-08 Joseph Pecoraro <pecoraro@apple.com>
2370 Web Inspector: Extract a few common unicode characters into global variables
2371 https://bugs.webkit.org/show_bug.cgi?id=154008
2373 Reviewed by Timothy Hatcher.
2375 * UserInterface/Base/Utilities.js:
2376 Create global variables for `emDash` and `ellipsis` to use all over the tools.
2378 * UserInterface/Views/ConsoleMessageView.js:
2379 (WebInspector.ConsoleMessageView.prototype._formatParameterAsTable): Deleted.
2380 * UserInterface/Views/DefaultDashboardView.js:
2381 (WebInspector.DefaultDashboardView.prototype._updateDisplay):
2382 * UserInterface/Views/HierarchicalPathComponent.js:
2383 (WebInspector.HierarchicalPathComponent.prototype._updateElementTitleAndText):
2384 (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement.createOption):
2385 (WebInspector.HierarchicalPathComponent.prototype._updateSelectElement):
2386 * UserInterface/Views/HierarchicalPathNavigationItem.js:
2387 (WebInspector.HierarchicalPathNavigationItem.prototype.updateLayout):
2388 * UserInterface/Views/LayerTreeDataGridNode.js:
2389 (WebInspector.LayerTreeDataGridNode.prototype.set layer):
2390 * UserInterface/Views/LayoutTimelineDataGridNode.js:
2391 (WebInspector.LayoutTimelineDataGridNode.prototype.createCellContent):
2392 (WebInspector.LayoutTimelineDataGridNode):
2393 * UserInterface/Views/MemoryCategoryView.js:
2394 (WebInspector.MemoryCategoryView.prototype._updateDetails): Deleted.
2395 (WebInspector.MemoryCategoryView): Deleted.
2396 * UserInterface/Views/MemoryTimelineView.js:
2397 (WebInspector.MemoryTimelineView.prototype._clearUsageLegend):
2398 (WebInspector.MemoryTimelineView.prototype._updateUsageLegend):
2399 (WebInspector.MemoryTimelineView.prototype._clearMaxComparisonLegend):
2400 (WebInspector.MemoryTimelineView.prototype._updateMaxComparisonLegend):
2401 * UserInterface/Views/MultipleScopeBarItem.js:
2402 (WebInspector.MultipleScopeBarItem.set scopeBarItems.createOption):
2403 (WebInspector.MultipleScopeBarItem.prototype.set scopeBarItems):
2404 * UserInterface/Views/ObjectPreviewView.js:
2405 (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
2406 (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2407 * UserInterface/Views/ProfileNodeDataGridNode.js:
2408 (WebInspector.ProfileNodeDataGridNode.prototype.createCellContent):
2409 (WebInspector.ProfileNodeDataGridNode):
2410 * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
2411 (WebInspector.RenderingFrameTimelineDataGridNode.prototype.createCellContent):
2412 (WebInspector.RenderingFrameTimelineDataGridNode):
2413 * UserInterface/Views/ResourceDetailsSidebarPanel.js:
2414 (WebInspector.ResourceDetailsSidebarPanel.prototype._refreshRequestAndResponse): Deleted.
2415 (WebInspector.ResourceDetailsSidebarPanel.prototype._valueForSize): Deleted.
2416 * UserInterface/Views/ResourceTimelineDataGridNode.js:
2417 (WebInspector.ResourceTimelineDataGridNode.prototype.createCellContent):
2418 * UserInterface/Views/ScriptTimelineDataGridNode.js:
2419 (WebInspector.ScriptTimelineDataGridNode.prototype.createCellContent):
2420 (WebInspector.ScriptTimelineDataGridNode):
2421 * UserInterface/Views/SearchResultTreeElement.js:
2422 (WebInspector.SearchResultTreeElement.truncateAndHighlightTitle):
2423 * UserInterface/Views/TimelineDataGridNode.js:
2424 (WebInspector.TimelineDataGridNode.prototype.createCellContent):
2425 * UserInterface/Views/TypeTreeElement.js:
2426 (WebInspector.TypeTreeElement.prototype.onpopulate):
2427 * UserInterface/Views/TypeTreeView.js:
2428 (WebInspector.TypeTreeView.prototype._populate):
2429 (WebInspector.TypeTreeView):
2431 2016-02-08 Joseph Pecoraro <pecoraro@apple.com>
2433 Web Inspector: ⇧⌘→ when editing text in the Elements tree shouldn't switch inspector tab
2434 https://bugs.webkit.org/show_bug.cgi?id=154006
2435 <rdar://problem/22892489>
2437 Reviewed by Timothy Hatcher.
2439 * UserInterface/Views/EditingSupport.js:
2440 (WebInspector.isEventTargetAnEditableField):
2441 Check the WebInspector's custom __editing state.
2443 2016-02-08 Devin Rousso <dcrousso+webkit@gmail.com>
2445 Web Inspector: Long values for comma separated CSS properties overflow the Visual sidebar area
2446 https://bugs.webkit.org/show_bug.cgi?id=153890
2447 <rdar://problem/24510216>
2449 Reviewed by Timothy Hatcher.
2451 For especially long values in comma-separated CSS properties (such as
2452 background-image), the text will not be clipped as expected due to the
2453 way in which the width is calculated for the element (the value, inside
2454 the title element, is the only child with a specified width other than
2455 100%). This overflowing causes the width of the section containing that
2456 property to expand, pushing content outside of the inspector window. To
2457 remedy this, a specified width is set on the relevant properties based
2458 on the width of the sidebar to ensure proper text clipping.
2460 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
2461 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
2462 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles):
2463 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles > .subtitle):
2464 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container): Deleted.
2465 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list): Deleted.
2466 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item): Deleted.
2468 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js:
2469 (WebInspector.VisualStyleCommaSeparatedKeywordEditor.prototype.set specifiedWidth):
2470 Calculates the necessary subtractions from the given width value based on
2471 the margins and size of sibling elements.
2473 * UserInterface/Views/VisualStyleDetailsPanel.js:
2474 (WebInspector.VisualStyleDetailsPanel.prototype._updateProperties):
2475 (WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
2476 (WebInspector.VisualStyleDetailsPanel.prototype._populateBackgroundStyleSection):
2477 (WebInspector.VisualStyleDetailsPanel.prototype._populateBoxShadowSection):
2478 (WebInspector.VisualStyleDetailsPanel.prototype._populateTransitionSection):
2479 Added another list to each group which, if set, will pass the current
2480 sidebar width to all contained property editors.
2482 * UserInterface/Views/VisualStylePropertyEditor.js:
2483 (WebInspector.VisualStylePropertyEditor.prototype.update):
2484 Somewhat unrelated (r196146), but added another check to ensure that the
2485 CSS property exists before checking to see if it has an invalid value.
2487 2016-02-08 Matt Baker <mattbaker@apple.com>
2489 Web Inspector: WebInspector.Setting should have a "reset" method
2490 https://bugs.webkit.org/show_bug.cgi?id=153971
2491 <rdar://problem/24544101>
2493 Reviewed by Brian Burg.
2495 Currently UI needing to restore a setting to its default must retain a copy
2496 of the default value. This should be a basic operation of WebInspector.Setting.
2498 * UserInterface/Base/Setting.js:
2499 (WebInspector.Setting):
2500 (WebInspector.Setting.prototype.reset):
2501 Sets value to a copy of the default.
2503 2016-02-06 Nikita Vasilyev <nvasilyev@apple.com>
2505 REGRESSION (r195432): Web Inspector: bottom right section of the styles sidebar is 1px taller than the console prompt
2506 https://bugs.webkit.org/show_bug.cgi?id=153959
2507 <rdar://problem/24541053>
2509 Reviewed by Timothy Hatcher.
2511 * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
2512 (.sidebar > .panel.details.css-style > .content ~ .options-container):
2513 (.sidebar > .panel.details.css-style > .content ~ .class-list-container)::
2514 Revert the height to what it used to be prior r195432.
2516 2016-02-05 Devin Rousso <dcrousso+webkit@gmail.com>
2518 Web Inspector: Visual Styles sidebar should be more forgiving to long labels
2519 https://bugs.webkit.org/show_bug.cgi?id=153927
2520 <rdar://problem/24343897>
2522 Reviewed by Timothy Hatcher.
2524 If a label is too long for it's container, it overflows and is visible
2525 above the rest of the elements nearby.
2527 * UserInterface/Views/VisualStylePropertyEditor.css:
2528 (.visual-style-property-container > .visual-style-property-title):
2529 Adds text overflow to properties that extend beyond the container's width.
2531 * UserInterface/Views/VisualStylePropertyEditor.js:
2532 (WebInspector.VisualStylePropertyEditor):
2533 Now also adds the label value as a title attribute to the element, just in
2534 case the content overflows.
2536 2016-02-05 Saam barati <sbarati@apple.com>
2538 Web Inspector: Include SamplingProfiler's expression-level data for stack frames in the protocol
2539 https://bugs.webkit.org/show_bug.cgi?id=153455
2540 <rdar://problem/24335884>
2542 Reviewed by Joseph Pecoraro.
2544 JSC has been collecting expression-level data in the sampling
2545 profiler, and with this patch, we now get that information
2546 in the inspector. With this information, we probably have
2547 all the data we need to make real heat maps.
2549 * UserInterface/Models/CallingContextTree.js:
2550 (WebInspector.CallingContextTree.prototype.updateTreeWithStackTrace):
2551 (WebInspector.CCTNode):
2552 (WebInspector.CCTNode.prototype.findOrMakeChild):
2553 (WebInspector.CCTNode.prototype.addTimestampAndExpressionLocation):
2554 (WebInspector.CCTNode.prototype.addTimestamp): Deleted.
2556 2016-02-05 Devin Rousso <dcrousso+webkit@gmail.com>
2558 Web Inspector: Navigation bar in sidebars should always fit on a single line
2559 https://bugs.webkit.org/show_bug.cgi?id=153412
2560 <rdar://problem/24318706>
2562 Reviewed by Timothy Hatcher.
2564 This happened because the allowed maximum width of the sidebar was greater
2565 than the minimum width derived from the currently visible sidebar.
2567 * UserInterface/Base/Utilities.js:
2569 Added logic to reverse the values of min and max if max is less than min.
2571 2016-02-05 Timothy Hatcher <timothy@apple.com>
2573 Web Inspector: Don't wrap labels in Breakpoint Editor popover
2574 https://bugs.webkit.org/show_bug.cgi?id=153926
2575 rdar://problem/24149542
2577 Reviewed by Brian Burg.
2579 * UserInterface/Views/BreakpointPopoverController.css:
2580 (.popover .edit-breakpoint-popover-content > table > tr > th): Added white-space: nowrap.
2582 2016-02-05 Devin Rousso <dcrousso+webkit@gmail.com>
2584 Web Inspector: Replace all instances of '%s' with “%s“
2585 https://bugs.webkit.org/show_bug.cgi?id=153891
2586 <rdar://problem/24510236>
2588 Reviewed by Timothy Hatcher.
2590 Switched all WebInspector.UIString() from using '' to ““.
2592 * Localizations/en.lproj/localizedStrings.js:
2593 * UserInterface/Views/CSSStyleDeclarationSection.js:
2594 (WebInspector.CSSStyleDeclarationSection.prototype._handleSelectorPaste):
2595 * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
2596 (WebInspector.CSSStyleDeclarationTextEditor.prototype._createTextMarkerForPropertyIfNeeded):
2597 * UserInterface/Views/VisualStylePropertyEditor.js:
2598 (WebInspector.VisualStylePropertyEditor.prototype.update):
2599 * UserInterface/Views/VisualStyleSelectorTreeItem.js:
2600 (WebInspector.VisualStyleSelectorTreeItem.prototype._updateSelectorIcon):
2602 2016-02-05 Nikita Vasilyev <nvasilyev@apple.com>
2604 REGRESSION (r193913): Web Inspector: Wrong z-index of inner sections
2605 https://bugs.webkit.org/show_bug.cgi?id=153914
2607 Reviewed by Timothy Hatcher.
2609 * UserInterface/Views/DetailsSection.css:
2610 (.details-section .details-section > .header):
2612 2016-02-05 Nikita Vasilyev <nvasilyev@apple.com>
2614 Web Inspector: Decrease font-weight of inner sections
2615 https://bugs.webkit.org/show_bug.cgi?id=153913
2616 <rdar://problem/24520326>
2618 Reviewed by Timothy Hatcher.
2620 * UserInterface/Views/DetailsSection.css:
2621 (.details-section .details-section > .header):
2623 2016-02-04 Nikita Vasilyev <nvasilyev@apple.com>
2625 Web Inspector: console.table background stripes are misaligned
2626 https://bugs.webkit.org/show_bug.cgi?id=152954
2627 <rdar://problem/24197735>
2629 Reviewed by Timothy Hatcher.
2631 * UserInterface/Views/LogContentView.css:
2632 (.console-item .data-grid table.data):
2633 (.console-item .data-grid table.data tr:nth-child(even)):
2634 Replace CSS gradient that produces fixed height stripes with
2635 a rule that sets background only on even table rows.
2637 2016-02-04 Joseph Pecoraro <pecoraro@apple.com>
2639 Unreviewed, follow-up fix to r196151 that removes some more images.
2641 * UserInterface/Images/Colors.png: Removed.
2642 * UserInterface/Images/Colors@2x.png: Removed.
2643 * UserInterface/Images/Network.png: Removed.
2644 * UserInterface/Images/Network@2x.png: Removed.
2645 * UserInterface/Images/Script.png: Removed.
2646 * UserInterface/Images/Script@2x.png: Removed.
2647 These images were supposed to also be removed.
2649 * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
2650 Also remove references to now removed images.
2652 2016-02-04 Joseph Pecoraro <pecoraro@apple.com>
2654 Web Inspector: New timeline images for instruments
2655 https://bugs.webkit.org/show_bug.cgi?id=153884
2656 <rdar://problem/24509429>
2658 Reviewed by Timothy Hatcher.
2660 * UserInterface/Views/TimelineTabContentView.js:
2661 (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
2662 Better names and give Memory timeline a name for an icon.
2664 * UserInterface/Views/TreeOutline.css:
2665 (.tree-outline.large .item .icon):
2666 Add more padding next to large icons.
2668 * UserInterface/Images/ColorsLarge.png: Removed.
2669 * UserInterface/Images/ColorsLarge@2x.png: Removed.
2670 * UserInterface/Images/Frames.png: Removed.
2671 * UserInterface/Images/Frames@2x.png: Removed.
2672 * UserInterface/Images/LayoutInstrument.svg: Added.
2673 * UserInterface/Images/MemoryInstrument.svg: Added.
2674 * UserInterface/Images/NetworkInstrument.svg: Added.
2675 * UserInterface/Images/NetworkLarge.png: Removed.
2676 * UserInterface/Images/NetworkLarge@2x.png: Removed.
2677 * UserInterface/Images/RenderingFramesInstrument.svg: Added.
2678 * UserInterface/Images/ScriptLarge.png: Removed.
2679 * UserInterface/Images/ScriptLarge@2x.png: Removed.
2680 Remove old timeline pngs.
2682 * UserInterface/Images/ScriptsInstrument.svg: Added.
2683 * UserInterface/Views/TimelineIcons.css:
2684 (.network-icon .icon):
2685 (.script-icon .icon):
2686 (.memory-icon .icon):
2687 (.layout-icon .icon):
2688 (.rendering-frame-icon .icon):
2691 (body:not(.mac-platform, .windows-platform) .network-icon .icon):
2692 (body:not(.mac-platform, .windows-platform) .network-icon.large .icon):
2693 (body:not(.mac-platform, .windows-platform) .layout-icon .icon):
2694 (body:not(.mac-platform, .windows-platform) .layout-icon.large .icon):
2695 (body:not(.mac-platform, .windows-platform) .script-icon .icon):
2696 (body:not(.mac-platform, .windows-platform) .script-icon.large .icon):
2697 (body:not(.mac-platform, .windows-platform) .rendering-frame-icon .icon):
2698 Fallback to old icons for non-Mac/Windows ports using Images/gtk images.
2700 2016-02-04 Devin Rousso <dcrousso+webkit@gmail.com>
2702 Web Inspector: Show error icons if invalid values already exist for properties in the Visual sidebar
2703 https://bugs.webkit.org/show_bug.cgi?id=153702
2704 <rdar://problem/24424025>
2706 Reviewed by Timothy Hatcher.
2708 When CSS properties have invalid values, instead of displaying the computed
2709 value for that property in the Visual sidebar, show an error icon with the
2712 * Localizations/en.lproj/localizedStrings.js:
2714 * UserInterface/Views/VisualStyleNumberInputBox.css:
2715 (.visual-style-property-container > .visual-style-property-value-container > .number-input-container > .number-input-value):
2716 (.visual-style-property-container > .visual-style-property-value-container > .visual-style-special-property-placeholder[hidden] ~ .number-input-container > .number-input-value):
2717 By default, do not allow any pointer events to interact with the input element.
2718 Instead, only allow interaction when the placeholder element is hidden to ensure
2719 that the user cannot add a value when the computed value is displayed.
2721 * UserInterface/Views/VisualStyleNumberInputBox.js:
2722 (WebInspector.VisualStyleNumberInputBox.prototype.set specialPropertyPlaceholderElementText):
2723 Reset the selected keyword to "Unchanged" since this is either a warning
2724 message or the computed value.
2726 * UserInterface/Views/VisualStylePropertyEditor.css:
2727 (.visual-style-property-container > .visual-style-property-editor-warning.missing-dependency):
2728 (.visual-style-property-container > .visual-style-property-editor-warning.invalid-value):
2729 (.visual-style-property-container > .visual-style-property-editor-warning):
2731 * UserInterface/Views/VisualStylePropertyEditor.js:
2732 (WebInspector.VisualStylePropertyEditor):
2733 Replaced document.createElement with [element].createChild for simplicity.
2735 (WebInspector.VisualStylePropertyEditor.prototype.update):
2736 Before assigning the value of the property to the editor, check to see if
2737 the property is valid. If not, display an Error icon and message stating
2738 that the current value is invalid.
2740 (WebInspector.VisualStylePropertyEditor.prototype.updateEditorValues):
2741 (WebInspector.VisualStylePropertyEditor.prototype.set specialPropertyPlaceholderElementText):
2742 Unhides the special placeholder element with the given text as its content.
2744 (WebInspector.VisualStylePropertyEditor.prototype._valueDidChange):
2745 (WebInspector.VisualStylePropertyEditor.prototype._checkDependencies):
2746 (WebInspector.VisualStylePropertyEditor.prototype.addDependency):
2748 2016-02-03 Joseph Pecoraro <pecoraro@apple.com>
2750 Web Inspector: JS PrettyPrinting unary - and + issues
2751 https://bugs.webkit.org/show_bug.cgi?id=134007
2752 <rdar://problem/17351953>
2754 Reviewed by Timothy Hatcher.
2756 * UserInterface/Views/CodeMirrorFormatters.js:
2757 (shouldHaveSpaceBeforeToken):
2758 (shouldHaveSpaceAfterLastToken):
2759 (removeLastNewline):
2760 (modifyStateForTokenPre):
2761 (modifyStateForTokenPost):
2763 2016-02-03 Dave Hyatt <hyatt@apple.com>
2765 Add hanging-punctuation property to Web Inspector
2766 https://bugs.webkit.org/show_bug.cgi?id=153841
2768 Reviewed by Zalan Bujtas.
2770 * UserInterface/Models/CSSKeywordCompletions.js:
2772 2016-02-03 Joseph Pecoraro <pecoraro@apple.com>
2774 Web Inspector: Uncaught exception TimelineRuler.prototype.resize no longer exists
2775 https://bugs.webkit.org/show_bug.cgi?id=153839
2777 Reviewed by Brian Burg.
2779 * UserInterface/Views/MemoryTimelineView.js:
2780 (WebInspector.MemoryTimelineView.prototype.shown):
2781 After r195995 the resize method was eliminated in favor of this approach.
2783 2016-02-02 Joseph Pecoraro <pecoraro@apple.com>
2785 Uncaught Exception: TypeError: undefined is not an object (evaluating 'highlightedRange.from')
2786 https://bugs.webkit.org/show_bug.cgi?id=153685
2788 Reviewed by Timothy Hatcher.
2790 * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
2791 (WebInspector.CodeMirrorTokenTrackingController.prototype.highlightRange):
2792 The highlighted range could have just gotten removed, in which case the
2793 marker would return undefined. Just bail in such cases.
2795 2016-02-01 Joseph Pecoraro <pecoraro@apple.com>
2797 Web Inspector: Option+Up/Down should not move cursor outside of number
2798 https://bugs.webkit.org/show_bug.cgi?id=153784
2799 <rdar://problem/24453133>
2801 Reviewed by Timothy Hatcher.
2803 * UserInterface/Views/CodeMirrorAdditions.js:
2804 When selectionStart === selectionEnd we were duplicating the
2805 movement mutation by performing it twice on the same object.
2806 After much experimentation, I left in the existing code path
2807 for handling mutation with a selection. It is not perfect,
2808 but it is better then just applying the ch diff.
2810 2016-02-01 Joseph Pecoraro <pecoraro@apple.com>
2812 Web Inspector: High Level Memory Overview Instrument
2813 https://bugs.webkit.org/show_bug.cgi?id=153516
2814 <rdar://problem/24356378>
2816 Reviewed by Brian Burg.
2818 Use the new "Memory" domain to track page memory size over time.
2819 This allows the timeline to help visualize total process memory
2820 broken down into a few different categories. The timeline graph
2821 allows seeing the total size over time, and you can drill in to
2822 a specific section and get a better breakdown and comparison
2823 of the different categories of memory that we currently track.
2825 * Localizations/en.lproj/localizedStrings.js:
2828 * UserInterface/Main.html:
2831 * UserInterface/Base/Main.js:
2832 (WebInspector.loaded):
2833 * UserInterface/Protocol/MemoryObserver.js:
2834 (WebInspector.MemoryObserver.prototype.trackingStart):
2835 (WebInspector.MemoryObserver.prototype.trackingUpdate):
2836 (WebInspector.MemoryObserver.prototype.trackingComplete):
2837 Add a memory observer.
2839 * UserInterface/Controllers/TimelineManager.js:
2840 (WebInspector.TimelineManager.defaultInstruments):
2841 (WebInspector.TimelineManager.prototype.memoryTrackingStart):
2842 (WebInspector.TimelineManager.prototype.memoryTrackingUpdate):
2843 (WebInspector.TimelineManager.prototype.memoryTrackingComplete):
2844 Create Memory timeline records from Memory tracking updates.
2846 * UserInterface/Models/MemoryCategory.js:
2847 (WebInspector.MemoryCategory):
2848 Consolidate some of the raw data of categories we get from the backend
2849 into a set of 4 user-facing categories.
2851 * UserInterface/Models/MemoryTimelineRecord.js: Added.
2852 (WebInspector.MemoryTimelineRecord):
2853 (WebInspector.MemoryTimelineRecord.memoryCategoriesFromProtocol):
2854 (WebInspector.MemoryTimelineRecord.prototype.get timestamp):
2855 (WebInspector.MemoryTimelineRecord.prototype.get categories):
2856 (WebInspector.MemoryTimelineRecord.prototype.get totalSize):
2857 (WebInspector.MemoryTimelineRecord.prototype.get startTime):
2858 (WebInspector.MemoryTimelineRecord.prototype.get endTime):
2859 Memory timeline record for the event data.
2861 * UserInterface/Models/MemoryInstrument.js:
2862 (WebInspector.MemoryInstrument):
2863 (WebInspector.MemoryInstrument.supported):
2864 (WebInspector.MemoryInstrument.prototype.get timelineRecordType):
2865 (WebInspector.MemoryInstrument.prototype.startInstrumentation):
2866 (WebInspector.MemoryInstrument.prototype.stopInstrumentation):
2867 Instrument to start / stop memory tracking.
2869 * UserInterface/Models/TimelineRecord.js:
2870 Add a new "Memory" Timeline type.
2872 * UserInterface/Views/ContentView.js:
2873 (WebInspector.ContentView.createFromRepresentedObject):
2874 * UserInterface/Models/TimelineRecording.js:
2875 (WebInspector.TimelineRecording):
2876 Add the new "Memory" Timeline.
2878 (WebInspector.TimelineRecording.prototype.addRecord):
2879 Memory timeline records do not show in the SourceCode Timelines Overview.
2881 * UserInterface/Views/CircleChart.css:
2883 (.circle-chart > svg > path.background):
2884 (.circle-chart > .center):
2885 * UserInterface/Views/CircleChart.js: Added.
2886 (WebInspector.CircleChart):
2887 (WebInspector.CircleChart.prototype.get element):
2888 (WebInspector.CircleChart.prototype.get points):
2889 (WebInspector.CircleChart.prototype.get size):
2890 (WebInspector.CircleChart.prototype.get centerElement):
2891 (WebInspector.CircleChart.prototype.get segments):
2892 (WebInspector.CircleChart.prototype.set segments):
2893 (WebInspector.CircleChart.prototype.get values):
2894 (WebInspector.CircleChart.prototype.set values):
2895 (WebInspector.CircleChart.prototype.clear):
2896 (WebInspector.CircleChart.prototype.needsLayout):
2897 (WebInspector.CircleChart.prototype.updateLayout):
2898 (WebInspector.CircleChart.prototype._needsLayout):
2899 (WebInspector.CircleChart.prototype._createCompleteCirclePathData):
2900 (WebInspector.CircleChart.prototype._createSegmentPathData):
2901 (WebInspector.CircleChart.prototype._updateLayout):
2902 Standalone circle "donut" chart, copied mostly from Rendering Frames Timeline.
2903 Initialize the chart's segments, then feed it a set of ([v1, v2, ...]) values
2904 corresponding to each of the segments.
2906 * UserInterface/Views/LineChart.js: Added.
2907 (WebInspector.LineChart):
2908 (WebInspector.LineChart.prototype.get element):
2909 (WebInspector.LineChart.prototype.get points):
2910 (WebInspector.LineChart.prototype.get size):
2911 (WebInspector.LineChart.prototype.set size):
2912 (WebInspector.LineChart.prototype.addPoint):
2913 (WebInspector.LineChart.prototype.clear):
2914 (WebInspector.LineChart.prototype.needsLayout):
2915 (WebInspector.LineChart.prototype.updateLayout):
2916 (WebInspector.LineChart.prototype._needsLayout):
2917 (WebInspector.LineChart.prototype._updateLayout):
2918 Standalone line chart. Uses a single SVG path, given a set of (x, y) points.
2920 * UserInterface/Views/StackedLineChart.js: Added.
2921 (WebInspector.StackedLineChart):
2922 (WebInspector.StackedLineChart.prototype.get element):
2923 (WebInspector.StackedLineChart.prototype.get points):
2924 (WebInspector.StackedLineChart.prototype.get size):
2925 (WebInspector.StackedLineChart.prototype.set size):
2926 (WebInspector.StackedLineChart.prototype.initializeSections):
2927 (WebInspector.StackedLineChart.prototype.addPointSet):
2928 (WebInspector.StackedLineChart.prototype.clear):
2929 (WebInspector.StackedLineChart.prototype.needsLayout):
2930 (WebInspector.StackedLineChart.prototype.updateLayout):
2931 (WebInspector.StackedLineChart.prototype._needsLayout):
2932 (WebInspector.StackedLineChart.prototype._updateLayout):
2933 Standalone stacked line chart. Initialize the chart's sections,
2934 then feed it a set of (x, [y1, y2 ...]) points where the y
2935 values correspond to each of the sections.
2937 * UserInterface/Views/TimelineOverview.js:
2938 (WebInspector.TimelineOverview.prototype.get scrollContainerWidth):
2939 Add a way to get this value without forcing layout all the time.
2941 * UserInterface/Views/TimelineTabContentView.js:
2942 (WebInspector.TimelineTabContentView.displayNameForTimeline):
2943 (WebInspector.TimelineTabContentView.iconClassNameForTimeline):
2944 (WebInspector.TimelineTabContentView.genericClassNameForTimeline):
2945 (WebInspector.TimelineTabContentView.iconClassNameForRecord):
2946 (WebInspector.TimelineTabContentView.displayNameForRecord):
2947 Add placeholders for the new Memory Timeline Type.
2949 * UserInterface/Views/MemoryCategoryView.css:
2950 (.memory-category-view):
2951 (.memory-category-view > .details):
2952 (.memory-category-view > .details > .name):
2953 (.memory-category-view > .graph):
2954 * UserInterface/Views/MemoryCategoryView.js: Added.
2955 (WebInspector.MemoryCategoryView):
2956 (WebInspector.MemoryCategoryView.prototype.get element):
2957 (WebInspector.MemoryCategoryView.prototype.get category):
2958 (WebInspector.MemoryCategoryView.prototype.clear):
2959 (WebInspector.MemoryCategoryView.prototype.layoutWithDataPoints):
2960 (WebInspector.MemoryCategoryView.prototype._updateDetails):
2961 * UserInterface/Views/MemoryTimelineOverviewGraph.css:
2962 (body .timeline-overview > .graphs-container > .timeline-overview-graph.memory):
2963 (.timeline-overview-graph.memory):
2964 (.timeline-overview-graph.memory > .legend):
2965 (.timeline-overview-graph.memory > .stacked-line-chart > svg > path.javascript):
2966 (.timeline-overview-graph.memory > .stacked-line-chart > svg > path.images):
2967 (.timeline-overview-graph.memory > .stacked-line-chart > svg > path.layers):
2968 (.timeline-overview-graph.memory > .stacked-line-chart > svg > path.page):
2969 * UserInterface/Views/MemoryTimelineOverviewGraph.js: Added.
2970 (WebInspector.MemoryTimelineOverviewGraph):
2971 (WebInspector.MemoryTimelineOverviewGraph.prototype.get height):
2972 (WebInspector.MemoryTimelineOverviewGraph.prototype.reset):
2973 (WebInspector.MemoryTimelineOverviewGraph.prototype.layout.timeToX):
2974 (WebInspector.MemoryTimelineOverviewGraph.prototype.layout.sizeToY):
2975 (WebInspector.MemoryTimelineOverviewGraph.prototype.layout.sizesToYs):
2976 (WebInspector.MemoryTimelineOverviewGraph.prototype.layout.ysForRecord):
2977 (WebInspector.MemoryTimelineOverviewGraph.prototype.layout):
2978 (WebInspector.MemoryTimelineOverviewGraph.prototype._updateLegend):
2979 (WebInspector.MemoryTimelineOverviewGraph.prototype._visibleRecords):
2980 (WebInspector.MemoryTimelineOverviewGraph.prototype._memoryTimelineRecordAdded):
2981 * UserInterface/Views/MemoryTimelineView.css: Added.
2982 (.timeline-view.memory):
2983 (.timeline-view.memory > .content):
2984 (.timeline-view.memory > .content > .overview):
2985 (.timeline-view.memory > .content .title):
2986 (.timeline-view.memory > .content .subtitle):
2987 (.timeline-view.memory > .content > .details > .timeline-ruler):
2988 (.timeline-view.memory > .content > .details > .subtitle):
2989 (.timeline-view.memory > .content > .overview > .chart):
2990 (.timeline-view.memory > .content > .overview > .chart > .subtitle):
2991 (.timeline-view.memory > .content > .overview > .chart > .container):
2992 (.timeline-view.memory > .content > .overview > .divider):
2993 (.timeline-view.memory > .content > .overview .max-percentage):
2994 (.timeline-view.memory .legend):
2995 (.timeline-view.memory .legend > .row):
2996 (.timeline-view.memory .legend > .row > .swatch):
2997 (.timeline-view.memory .legend > .row > p):
2998 (.timeline-view.memory .legend > .row > .label):
2999 (.timeline-view.memory .legend > .row > .size):
3000 (.timeline-view.memory .legend > .row > .swatch.javascript):
3001 (.timeline-view.memory .legend > .row > .swatch.images):
3002 (.timeline-view.memory .legend > .row > .swatch.layers):
3003 (.timeline-view.memory .legend > .row > .swatch.page):
3004 (.memory-category-view.javascript .line-chart > svg > path):
3005 (.memory-category-view.images .line-chart > svg > path):
3006 (.memory-category-view.layers .line-chart > svg > path):
3007 (.memory-category-view.page .line-chart > svg > path):
3008 (.timeline-view.memory .legend > .row > .swatch.current):
3009 (.timeline-view.memory .circle-chart > svg > path.current):
3010 (.timeline-view.memory .circle-chart > svg > path.remainder):
3011 * UserInterface/Views/MemoryTimelineView.js: Added.
3012 (WebInspector.MemoryTimelineView):
3013 (WebInspector.MemoryTimelineView.displayNameForCategory):
3014 (WebInspector.MemoryTimelineView.prototype.get navigationSidebarTreeOutlineLabel):
3015 (WebInspector.MemoryTimelineView.prototype.shown):
3016 (WebInspector.MemoryTimelineView.prototype.hidden):
3017 (WebInspector.MemoryTimelineView.prototype.closed):
3018 (WebInspector.MemoryTimelineView.prototype.reset):
3019 (WebInspector.MemoryTimelineView.prototype.treeElementPathComponentSelected):
3020 (WebInspector.MemoryTimelineView.prototype.layout.timeToX):
3021 (WebInspector.MemoryTimelineView.prototype.layout.sizeToY):
3022 (WebInspector.MemoryTimelineView.prototype.layout.layoutCategoryView):
3023 (WebInspector.MemoryTimelineView.prototype.layout):
3024 (WebInspector.MemoryTimelineView.prototype._clearUsageLegend):
3025 (WebInspector.MemoryTimelineView.prototype._updateUsageLegend):
3026 (WebInspector.MemoryTimelineView.prototype._clearMaxComparisonLegend):
3027 (WebInspector.MemoryTimelineView.prototype._updateMaxComparisonLegend):
3028 (WebInspector.MemoryTimelineView.prototype._visibleRecords):
3029 (WebInspector.MemoryTimelineView.prototype._initializeCategoryViews.appendLegendRow):
3030 (WebInspector.MemoryTimelineView.prototype._initializeCategoryViews):
3031 (WebInspector.MemoryTimelineView.prototype._memoryTimelineRecordAdded):
3032 * UserInterface/Views/Variables.css:
3034 Memory timeline view styles.
3036 2016-02-01 Matt Baker <mattbaker@apple.com>
3038 Web Inspector: add a LayoutReason enum to the View base class
3039 https://bugs.webkit.org/show_bug.cgi?id=153731
3040 <rdar://problem/24430938>
3042 Reviewed by Brian Burg.
3044 Added a LayoutReason enum to the View base class, which can be passed as an optional
3045 argument to needsLayout() and updateLayout(). The value is propagated to the view's
3046 subtree during layout.
3048 * UserInterface/Base/Main.js:
3049 Update top-level views with Resize layout reason when window is resized.
3051 * UserInterface/Views/DataGrid.js:
3052 (WebInspector.DataGrid.prototype._positionHeaderViews):
3053 Update header view with Resize layout reason when column is resized.
3055 * UserInterface/Views/OverviewTimelineView.js:
3056 (WebInspector.OverviewTimelineView.prototype.shown):
3057 Assume the view has been resized when shown, and update layout.
3058 (WebInspector.OverviewTimelineView.prototype.updateLayoutForResize): Deleted.
3059 No longer needed, handled by the View base class.
3061 * UserInterface/Views/TimelineOverview.js:
3062 (WebInspector.TimelineOverview.prototype.shown):
3063 Assume the view has been resized when shown, and update layout.
3064 (WebInspector.TimelineOverview.prototype.layout):
3065 Invalidate cached scroll container width if resized.
3066 (WebInspector.TimelineOverview.prototype.updateLayoutForResize): Deleted.
3067 No longer needed, handled by the View base class.
3069 * UserInterface/Views/TimelineRecordingContentView.js:
3070 (WebInspector.TimelineRecordingContentView.prototype.layout): Deleted.
3071 No longer needed, handled by the View base class.
3073 * UserInterface/Views/TimelineRuler.js:
3074 (WebInspector.TimelineRuler.prototype.needsLayout):
3075 (WebInspector.TimelineRuler.prototype.layout):
3076 Update cached client width if resized.
3077 (WebInspector.TimelineRuler.prototype.resize): Deleted.
3078 Moved resize logic to layout override.
3080 * UserInterface/Views/View.js:
3081 (WebInspector.View):
3082 (WebInspector.View.prototype.updateLayout):
3084 (WebInspector.View.prototype.needsLayout):
3085 Set layout reason even if an animation frame has already been scheduled,
3086 since the layout reason could have changed.
3087 (WebInspector.View.prototype._layoutSubtree):
3088 Propagate layout reason to subtree, and reset the value when done.
3089 (WebInspector.View.prototype._setLayoutReason):
3090 Helper method for updating the layout reason. Ensures that LayoutReason.Resize
3091 has priority over the default (LayoutReason.Dirty).
3093 2016-02-01 Matt Baker <mattbaker@apple.com>
3095 Web Inspector: Rendering Frames timeline draws all frame bars at minimum height
3096 https://bugs.webkit.org/show_bug.cgi?id=153736
3097 <rdar://problem/21946301>
3099 Reviewed by Timothy Hatcher.
3101 * UserInterface/Views/TimelineRecordingContentView.js:
3102 (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
3103 Update the new timeline overview's height before it's shown. Showing the
3104 overview causes the rendering frames graph to do a layout, which requires
3105 the height of the containing view to be a valid value.
3107 2016-02-01 Matt Baker <mattbaker@apple.com>
3109 Web Inspector: DataGridNode should support adding go-to arrow buttons to any cell
3110 https://bugs.webkit.org/show_bug.cgi?id=153733
3111 <rdar://problem/24431813>
3113 Reviewed by Brian Burg.
3115 Provide a way to add go-to arrow buttons to any grid cell from within a
3116 DataGridNode subclass's implementation of createCellContent.
3118 * UserInterface/Views/DataGrid.js:
3119 New event type, GoToArrowClicked.
3120 (WebInspector.DataGridNode.prototype.createGoToArrowButton.buttonClicked):
3121 (WebInspector.DataGridNode.prototype.createGoToArrowButton):
3122 Adds a go-to arrow button to the cell's content element. Clicking the button
3123 dispatches an event on the DataGrid, with event data containing the
3124 DataGridNode and identifier of the cell containing the arrow button.
3126 2016-01-31 Jeremy Jones <jeremyj@apple.com>
3128 Add resize event for HTMLMediaElement
3129 https://bugs.webkit.org/show_bug.cgi?id=125715
3131 Reviewed by Darin Adler.
3133 Add a display name for "resize" event.
3135 * UserInterface/Models/ScriptTimelineRecord.js:
3136 (WebInspector.ScriptTimelineRecord.EventType.displayName):
3138 2016-01-30 Dave Hyatt <hyatt@apple.com>
3140 Add the break-* properties to Web Inspector's completion set
3141 https://bugs.webkit.org/show_bug.cgi?id=153706
3143 Reviewed by Darin Adler.
3145 * UserInterface/Models/CSSKeywordCompletions.js:
3147 2016-01-30 Matt Baker <mattbaker@apple.com>
3149 Web Inspector: Network panel is empty until the window is resized
3150 https://bugs.webkit.org/show_bug.cgi?id=153701
3151 <rdar://problem/24423739>
3153 Reviewed by Timothy Hatcher.
3155 NetworkGridContentView shouldn't prevent a layout from being scheduled
3156 when the network sidebar is collapsed.
3158 * UserInterface/Views/NetworkGridContentView.js:
3159 (WebInspector.NetworkGridContentView.prototype.needsLayout): Deleted.
3160 Removed View.prototype.needsLayout override that was preventing
3161 layouts from being scheduled as timeline records are added.
3163 2016-01-30 Devin Rousso <dcrousso+webkit@gmail.com>
3165 Web Inspector: Object tree parent items are misaligned
3166 https://bugs.webkit.org/show_bug.cgi?id=153699
3167 <rdar://problem/24423683>
3169 Reviewed by Darin Adler.
3171 * UserInterface/Views/ObjectTreeView.css:
3172 (.object-tree .object-tree):
3173 Ensure that toplevel Object preview trees are displayed properly while also
3174 making child trees inline.
3176 * UserInterface/Views/TreeOutline.css:
3177 (.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) > .icon):
3178 (.tree-outline:not(.hide-disclosure-buttons) .item:not(.parent) .icon): Deleted.
3179 This would apply to all .icon elements contained within a non-parent item,
3180 which is not the desired effect. Instead, this should only apply to only the
3181 .icon element of that particular non-parent item.
3183 2016-01-29 Joseph Pecoraro <pecoraro@apple.com>
3185 Web Inspector: Add support for variable size timeline graphs
3186 https://bugs.webkit.org/show_bug.cgi?id=153690
3187 <rdar://problem/24421696>
3189 Reviewed by Timothy Hatcher.
3191 * UserInterface/Views/LayoutTimelineDataGrid.js:
3192 (WebInspector.LayoutTimelineDataGrid): Deleted.
3193 Remove unnecessary constructor.
3195 * UserInterface/Views/TimelineOverviewGraph.js:
3196 (WebInspector.TimelineOverviewGraph.prototype.set selectedRecord):
3197 Default graph height.
3199 * UserInterface/Views/RenderingFrameTimelineOverview.js:
3200 (WebInspector.RenderingFrameTimelineOverview.prototype.get height):
3201 Custom graph height.
3203 * UserInterface/Views/TimelineOverview.js:
3204 (WebInspector.TimelineOverview.prototype.get height):
3205 Provide a way to get the height of the overview which accumulates graph heights.
3207 * UserInterface/Views/TimelineRecordingContentView.js:
3208 (WebInspector.TimelineRecordingContentView.prototype.get timelineOverviewHeight):
3209 (WebInspector.TimelineRecordingContentView.prototype._updateTimelineOverviewHeight):
3210 * UserInterface/Views/TimelineSidebarPanel.js:
3211 (WebInspector.TimelineSidebarPanel.prototype._updateTimelineOverviewHeight):
3212 Switch from assuming certain graph heights to asking the overview for its height.
3214 2016-01-29 Devin Rousso <dcrousso+webkit@gmail.com>
3216 Web Inspector: Object previews in the Console are misaligned
3217 https://bugs.webkit.org/show_bug.cgi?id=153676
3218 <rdar://problem/24418796>
3220 Reviewed by Timothy Hatcher.
3222 * UserInterface/Views/ObjectTreeView.css:
3223 (.object-tree .tree-outline.object.compact):
3224 (.object-tree): Deleted.
3226 2016-01-29 Devin Rousso <dcrousso+webkit@gmail.com>
3228 Web Inspector: Provide a way to clear the network panel
3229 https://bugs.webkit.org/show_bug.cgi?id=153632
3230 <rdar://problem/23317773>
3232 Reviewed by Timothy Hatcher.
3234 Added a navigation item to the Network tab that resets the network grid's content.
3236 * Localizations/en.lproj/localizedStrings.js:
3237 * UserInterface/Views/NetworkGridContentView.js:
3238 (WebInspector.NetworkGridContentView):
3239 (WebInspector.NetworkGridContentView.prototype.get navigationItems):
3240 (WebInspector.NetworkGridContentView.prototype._clearNetworkItems):
3242 2016-01-29 Joseph Pecoraro <pecoraro@apple.com>
3244 Web Inspector: WebInspector.Setting should not access localStorage if the value did not change
3245 https://bugs.webkit.org/show_bug.cgi?id=153671
3246 <rdar://problem/24417029>
3248 Reviewed by Brian Burg.
3250 * UserInterface/Base/Setting.js:
3251 (WebInspector.Setting.prototype.set value):
3253 2016-01-29 Joseph Pecoraro <pecoraro@apple.com>
3255 Web Inspector: Duplicate tab-types being saved to setting, causing duplicate tabs to be opened
3256 https://bugs.webkit.org/show_bug.cgi?id=153659
3257 <rdar://problem/24413157>
3259 Reviewed by Brian Burg.
3261 * UserInterface/Base/Main.js:
3262 (WebInspector.contentLoaded):
3263 (WebInspector._rememberOpenTabs):
3264 De-duplicate the setting when building the list of tabs for existing
3265 cases where the setting has duplicates and de-duplicate storing into
3266 the setting, which was causing the issue to begin with.
3268 2016-01-29 Devin Rousso <dcrousso+webkit@gmail.com>
3270 Web Inspector: Add font-variant-* to the visual styles sidebar
3271 https://bugs.webkit.org/show_bug.cgi?id=148720
3272 <rdar://problem/22569974>
3274 Reviewed by Timothy Hatcher.
3276 Added another subsection to the "Text" section for font-variant-*
3279 * Localizations/en.lproj/localizedStrings.js:
3280 * UserInterface/Images/FontVariantSmallCaps.svg: Removed.
3282 * UserInterface/Views/VisualStyleDetailsPanel.js:
3283 (WebInspector.VisualStyleDetailsPanel):
3284 Added another keyword grouping with the "normal" value since it is used
3285 frequently in multiple subsections.
3287 (WebInspector.VisualStyleDetailsPanel.prototype._populateFontSection):
3288 (WebInspector.VisualStyleDetailsPanel.prototype._populateFontVariantsSection):
3289 Added the five new font-variant-* properties specified in
3290 <https://webkit.org/blog/5735/css-font-features/>.
3292 (WebInspector.VisualStyleDetailsPanel.prototype._populateTextSpacingSection):
3293 (WebInspector.VisualStyleDetailsPanel.prototype._populateAnimationSection):
3294 Replaced the hardcoded "normal" keyword with the new grouping.
3296 * UserInterface/Views/VisualStyleKeywordCheckbox.css:
3297 (.visual-style-property-container.keyword-checkbox.font-variant > .visual-style-property-value-container > input::after): Deleted.
3299 2016-01-28 Joseph Pecoraro <pecoraro@apple.com>
3301 Web Inspector: Avoid recreating Timeline's DataGridNode data multiple times
3302 https://bugs.webkit.org/show_bug.cgi?id=153608
3304 Reviewed by Timothy Hatcher.
3306 * UserInterface/Views/LayoutTimelineDataGridNode.js:
3307 (WebInspector.LayoutTimelineDataGridNode.prototype.get data):
3308 * UserInterface/Views/RenderingFrameTimelineDataGridNode.js:
3309 (WebInspector.RenderingFrameTimelineDataGridNode.prototype.get data):
3310 * UserInterface/Views/ScriptTimelineDataGridNode.js:
3311 (WebInspector.ScriptTimelineDataGridNode.prototype.get data):
3312 Cache the data when we create it the first time.
3314 2016-01-28 Nikita Vasilyev <nvasilyev@apple.com>
3316 Web Inspector: Tabs height should be 2px less to match Safari
3317 https://bugs.webkit.org/show_bug.cgi?id=153581
3318 <rdar://problem/24383501>
3320 Reviewed by Darin Adler.
3322 * UserInterface/Views/TabBar.css:
3326 (.tab-bar > .item.pinned):
3327 Make the new tab button ("+") a square.
3329 2016-01-27 Nikita Vasilyev <nvasilyev@apple.com>
3331 Web Inspector: Don't show hand cursor for edited attribute
3332 https://bugs.webkit.org/show_bug.cgi?id=152211
3333 <rdar://problem/23870523>
3335 Reviewed by Joseph Pecoraro.
3337 * UserInterface/Views/Editing.css:
3338 (.editing, .editing *):
3340 2016-01-27 Saam barati <sbarati@apple.com>
3342 CodeMirror will strip out "\r" from files with "\r\n" as newlines causing our offsets into the file to be incorrect
3343 https://bugs.webkit.org/show_bug.cgi?id=153529
3344 <rdar://problem/24376799>
3346 Reviewed by Timothy Hatcher.
3348 This problem manifested in the type token annotator inserting
3349 tokens in the wrong places. Because our offsets are computed
3350 based on the resource we get from backend, CodeMirror changing
3351 the source text will cause all of our offsets to be incorrect.
3353 * UserInterface/Views/CodeMirrorEditor.js:
3354 (WebInspector.CodeMirrorEditor.create):
3355 (WebInspector.CodeMirrorEditor):
3356 * UserInterface/Views/TextEditor.js:
3357 (WebInspector.TextEditor.set string.update):
3358 (WebInspector.TextEditor.prototype.set string):
3360 2016-01-27 Devin Rousso <dcrousso+webkit@gmail.com>
3362 Web Inspector: Regression (r195303) - Changes to TreeOutline break styling of lists in Visual sidebar
3363 https://bugs.webkit.org/show_bug.cgi?id=153563
3365 Reviewed by Timothy Hatcher.
3367 Removed duplicate properties and used new methods of TreeOutline to achieve
3368 the desired styling effects.
3370 * UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css:
3371 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item.visual-style-font-family-list-item > .visual-style-comma-separated-keyword-item-editor):
3372 (.visual-style-property-container.comma-separated-keyword-editor > .visual-style-property-value-container > .visual-style-comma-separated-keyword-list > .visual-style-comma-separated-keyword-item > .titles): Deleted.
3374 * UserInterface/Views/VisualStyleSelectorSection.js:
3375 (WebInspector.VisualStyleSelectorSection):
3377 * UserInterface/Views/VisualStyleSelectorTreeItem.css:
3378 (.item.visual-style-selector-item > .icon):
3379 (.item.visual-style-selector-item > .titles):
3380 (.item.visual-style-selector-item > .titles > .subtitle):
3381 (.item.visual-style-selector-item.selected > .titles > .subtitle):
3382 (.item.visual-style-selector-item > .titles > .subtitle::before): Deleted.
3384 2016-01-27 Simon Fraser <simon.fraser@apple.com>
3386 Support CSS3 Images values for the image-rendering property
3387 https://bugs.webkit.org/show_bug.cgi?id=153556
3389 Reviewed by Dean Jackson.
3391 Add "crisp-edges", "pixelated" to the suggestions for image-rendering.
3393 * UserInterface/Models/CSSKeywordCompletions.js:
3395 2016-01-26 Joseph Pecoraro <pecoraro@apple.com>
3397 Web Inspector: Remove unused FramesLarge.png variants, only the smaller Frames icon is used for the Rendering Frames timeline
3398 https://bugs.webkit.org/show_bug.cgi?id=153523
3400 Reviewed by Timothy Hatcher.
3402 * UserInterface/Images/FramesLarge.png: Removed.
3403 * UserInterface/Images/FramesLarge@2x.png: Removed.
3404 * UserInterface/Images/gtk/FramesLarge.png: Removed.
3405 * UserInterface/Images/gtk/FramesLarge@2x.png: Removed.
3406 * UserInterface/Views/TimelineIcons.css:
3407 (.rendering-frame-icon.large .icon): Deleted.
3409 2016-01-25 Skachkov Oleksandr <gskachkov@gmail.com>
3411 [ES6] Arrow function syntax. Arrow function specific features. Lexical bind "arguments"
3412 https://bugs.webkit.org/show_bug.cgi?id=145132
3414 Reviewed by Saam Barati.
3416 Current patch is implementing lexical bind of arguments, so in this callback we need
3417 to return to ordinary function.
3419 * UserInterface/Base/Object.js:
3420 (WebInspector.Object.singleFireEventListener.let.wrappedCallback):
3421 (WebInspector.Object.singleFireEventListener):
3423 2016-01-25 Saam barati <sbarati@apple.com>
3425 Web Inspector: Have top-level ScriptTimelineDataGridNode events show sample counts
3426 https://bugs.webkit.org/show_bug.cgi?id=153447
3427 <rdar://problem/24334137>
3429 Reviewed by Joseph Pecoraro.
3431 * UserInterface/Models/ScriptTimelineRecord.js:
3432 (WebInspector.ScriptTimelineRecord):
3433 (WebInspector.ScriptTimelineRecord.prototype.get profile):
3434 (WebInspector.ScriptTimelineRecord.prototype.get callCount):
3435 (WebInspector.ScriptTimelineRecord.prototype.isGarbageCollection):
3436 (WebInspector.ScriptTimelineRecord.prototype._initializeProfileFromPayload):
3437 * UserInterface/Views/ScriptTimelineDataGridNode.js:
3438 (WebInspector.ScriptTimelineDataGridNode.prototype.get data):
3440 2016-01-25 Joseph Pecoraro <pecoraro@apple.com>
3442 Web Inspector: Reduce unnecessary forced layouts in TimelineOverview
3443 https://bugs.webkit.org/show_bug.cgi?id=153392
3444 <rdar://problem/24312344>
3446 Reviewed by Timothy Hatcher.
3448 * UserInterface/Views/TimelineOverview.js:
3449 (WebInspector.TimelineOverview.prototype.layout):
3450 Ignore setting the scrollLeft if we would be setting it to 0.
3451 This helps avoid a forced layout in common cases.
3453 2016-01-25 Johan K. Jensen <jj@johanjensen.dk>
3455 Web Inspector: timelines clear button should be inactive if nothing can be cleared
3456 https://bugs.webkit.org/show_bug.cgi?id=132756
3458 Reviewed by Timothy Hatcher.
3460 * UserInterface/Views/TimelineRecordingContentView.js:
3461 (WebInspector.TimelineRecordingContentView.prototype.shown):
3462 Enable clear button if timeline is not readonly and contains data, when switching timelines.
3463 (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
3464 Enable clear button when a capturing starts.
3465 (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
3466 Disable clear button after resetting recording.
3468 2016-01-25 Matt Baker <mattbaker@apple.com>
3470 Web Inspector: Timelines: "Timer Installed150ms delay" — no space before the delay number
3471 https://bugs.webkit.org/show_bug.cgi?id=153416
3473 Reviewed by Timothy Hatcher.
3475 Fix for tree element subtitle rule that regressed in https://bugs.webkit.org/show_bug.cgi?id=153146.
3477 * UserInterface/Views/TreeOutline.css:
3478 (.tree-outline .item .alternate-subtitle::before):
3479 Em dash should be inserted before both subtitle types.
3481 2016-01-24 Matt Baker <mattbaker@apple.com>
3483 Web Inspector: add support for placing Views in DataGrid column headers
3484 https://bugs.webkit.org/show_bug.cgi?id=153387
3485 <rdar://problem/24310797>
3487 Reviewed by Timothy Hatcher.
3489 This patch adds a new DataGrid column property, `headerView`, allowing a
3490 custom View object to be placed in a column's header cell. The grid ensures
3491 that the left and right edges of the view are kept in sync as columns are
3492 resized. As most views use absolute positioning and are styled in CSS, the
3493 vertical position and height of the view isn't set by the grid.
3495 * UserInterface/Views/DataGrid.js:
3496 (WebInspector.DataGrid.prototype.insertColumn):
3497 If the new column includes the `headerView` column data property,
3498 it should take priority over `titleDOMFragment` and title text.
3499 The specified View object is inserted into the DOM under the
3500 column's <th> element, and added as a subview of the data grid.
3501 (WebInspector.DataGrid.prototype.layout):
3502 Update header views after performing default layout.
3503 (WebInspector.DataGrid.prototype._showColumn):
3504 Set `hidden` column property false instead of deleting it.
3505 (WebInspector.DataGrid.prototype._positionHeaderViews):
3506 Update the left and right style positions for all Views embedded in
3507 column header cells, then update their layouts.
3508 (WebInspector.DataGrid.prototype.resizerDragging):
3509 Update header views after column resizers are repositioned.
3511 2016-01-24 Nikita Vasilyev <nvasilyev@apple.com>
3513 Web Inspector: Highlight timeline range handles on hover
3514 https://bugs.webkit.org/show_bug.cgi?id=153395
3515 <rdar://problem/24312364>
3517 Reviewed by Timothy Hatcher.
3519 * UserInterface/Views/TimelineRuler.css:
3520 (.timeline-ruler > .selection-handle.clamped):
3521 Gardening. No need to repeat "1px solid".
3523 (.timeline-ruler > .selection-handle:hover, .timeline-ruler > .selection-handle:active):
3524 ":active" pseudo selector is needed to keep the handle highligted while it's being dragged
3525 regardress if the mouse cursor is hovering over it or not.
3527 2016-01-23 Aaron Chu <arona.chu@gmail.com>
3529 Web Inspector: AXI: node-link-list should be collapsible
3530 https://bugs.webkit.org/show_bug.cgi?id=130911
3532 Reviewed by Timothy Hatcher.
3534 Accessibility Inspector: for a very long children node list, only the first 5 nodes are shown.
3535 Remaining nodes are hidden by a "# More…" link by which a user can click to reveal the remainder
3538 * Localizations/en.lproj/localizedStrings.js:
3539 * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
3540 (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshAccessibility.linkListForNodeIds):
3541 * UserInterface/Views/Main.css:
3542 (.expand-list-button):
3543 (.node-link-list, .node-link-list li:not([hidden])):
3544 (.node-link-list, .node-link-list li): Deleted.
3546 2016-01-22 Joseph Pecoraro <pecoraro@apple.com>
3548 Web Inspector: Reduce unnecessary forced layouts in TimelineRuler
3549 https://bugs.webkit.org/show_bug.cgi?id=153390
3550 <rdar://problem/24312241>
3552 Reviewed by Timothy Hatcher.
3554 TimelineRuler's width rarely changes. It should only need to calculate
3555 its width when added to the DOM or if the content view containing it
3556 has resized and the bounds of the ruler may have changed.
3558 Switch everything in TimelineRuler to using a cached width, and add
3559 an explicit method, resize, to update this width. This eliminated
3560 frequent hangs I was seeing while recording timelines.
3562 * UserInterface/Views/OverviewTimelineView.js:
3563 (WebInspector.OverviewTimelineView.prototype.shown):
3564 (WebInspector.OverviewTimelineView.prototype.updateLayoutForResize):
3565 Resize the ruler when the view is shown or resized.
3567 * UserInterface/Views/TimelineOverview.js:
3568 (WebInspector.TimelineOverview.prototype.shown):
3569 (WebInspector.TimelineOverview.prototype.updateLayoutForResize):
3570 Resize the ruler when the view is shown or resized.
3572 * UserInterface/Views/TimelineRecordingContentView.js:
3573 (WebInspector.TimelineRecordingContentView.prototype.layout):
3574 Inform the current content view of a resize if possible.
3576 * UserInterface/Views/TimelineRuler.js:
3577 (WebInspector.TimelineRuler.prototype.resize):
3580 (WebInspector.TimelineRuler.prototype._recalculate):
3581 (WebInspector.TimelineRuler.prototype._needsMarkerLayout):
3582 (WebInspector.TimelineRuler.prototype._needsSelectionLayout):
3583 (WebInspector.TimelineRuler.prototype._handleMouseMove):
3584 (WebInspector.TimelineRuler.prototype._handleSelectionHandleMouseMove):
3587 * UserInterface/Views/TimelineRecordBar.js:
3588 (WebInspector.TimelineRecordBar.createCombinedBars): Deleted.
3589 Remove some stale code.
3591 2016-01-22 Devin Rousso <dcrousso+webkit@gmail.com>
3593 Web Inspector: Sidebar's should remember their width's
3594 https://bugs.webkit.org/show_bug.cgi?id=153007
3596 Reviewed by Timothy Hatcher.
3598 * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
3599 (WebInspector.CSSStyleDetailsSidebarPanel.prototype.widthDidChange):
3600 Now calls superclass function.
3602 * UserInterface/Views/Sidebar.js:
3603 (WebInspector.Sidebar.prototype.set selectedSidebarPanel):
3604 Now calls _recalculateWidth with the saved width value of the sidebar as
3605 the first parameter.
3607 (WebInspector.Sidebar.prototype.set collapsed):
3608 Now only calls _recalculateWidth if the selected sidebar panel is visible,
3609 seeing as if it is hidden the width is irrelevant.
3611 * UserInterface/Views/SidebarPanel.js:
3612 (WebInspector.SidebarPanel):
3613 Creates a setting object using the panel's identifier to store the current width.
3615 (WebInspector.SidebarPanel.prototype.get savedWidth):
3616 (WebInspector.SidebarPanel.prototype.widthDidChange):
3617 So long as the current width has a value, save it to the setting object.
3619 2016-01-22 Devin Rousso <dcrousso+webkit@gmail.com>
3621 Web Inspector: Class toggle add icon flashes when changing nodes
3622 https://bugs.webkit.org/show_bug.cgi?id=153341
3624 Reviewed by Timothy Hatcher.
3626 * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
3627 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._populateClassToggles):
3628 Changed the way in which the class toggles are repopulated to prevent the
3629 add class icon from being removed and re-added.
3631 2016-01-21 Nikita Vasilyev <nvasilyev@apple.com>
3633 REGRESSION (r195305): Web Inspector: WebInspector.Object can dispatch constructor-level events multiple times
3634 https://bugs.webkit.org/show_bug.cgi?id=153269
3635 <rdar://problem/24253106>
3637 Reviewed by Timothy Hatcher.
3639 Bring back object.hasOwnProperty("_listeners") check.
3641 * UserInterface/Base/Object.js:
3642 (WebInspector.Object.prototype.dispatchEventToListeners.dispatch):
3643 (WebInspector.Object.prototype.dispatchEventToListeners):
3644 (WebInspector.Object):
3645 Check !object._listeners before !object.hasOwnProperty("_listeners")
3646 because !object._listeners is more common case thus we can exit earlier
3649 2016-01-21 Devin Rousso <dcrousso+webkit@gmail.com>
3651 Web Inspector: Add toggle-able list of classes for each element
3652 https://bugs.webkit.org/show_bug.cgi?id=152678
3654 Reviewed by Timothy Hatcher.
3656 Adds a button to the CSS sidebar that, when toggled, displays a section
3657 directly above it containing all the classes for the selected node that,
3658 when toggled, adds or removes the class from the node.
3660 * Localizations/en.lproj/localizedStrings.js:
3662 * UserInterface/Protocol/RemoteObject.js:
3663 (WebInspector.RemoteObject.prototype.callFunction.mycallback):
3664 (WebInspector.RemoteObject.prototype.callFunction):
3665 Add extra handling of arguments to allow nicer looking calls by other classes.
3667 * UserInterface/Views/CSSStyleDetailsSidebarPanel.css:
3668 Changed next-sibling selector (+) to general-sibling selector (~).
3670 (.sidebar > .panel.details.css-style > .content ~ :matches(.options-container, .class-list-container)):
3671 (.sidebar > .panel.details.css-style > .content:not(.supports-new-rule, .has-filter-bar) ~ :matches(.options-container, .class-list-container)):
3672 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):
3673 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle.selected):
3674 (.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle:not(.selected):hover):
3675 (.sidebar > .panel.details.css-style > .content ~ .class-list-container):
3676 (.sidebar > .panel.details.css-style > .content ~ .class-list-container[hidden]):
3677 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class):
3678 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > input[type="checkbox"]):
3679 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .add-class-icon):
3680 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class > .class-name-input):
3681 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > .new-class:not(.active) > .class-name-input):
3682 (.sidebar > .panel.details.css-style > .content ~ .class-list-container > *:matches(.new-class, .class-toggle)):
3684 * UserInterface/Views/CSSStyleDetailsSidebarPanel.js:
3685 (WebInspector.CSSStyleDetailsSidebarPanel):
3686 Also changed the few instances of "var" to "let".
3688 (WebInspector.CSSStyleDetailsSidebarPanel.prototype.refresh):
3689 (WebInspector.CSSStyleDetailsSidebarPanel.prototype.addEventListeners):
3690 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._handleNodeAttributeModified):
3691 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._handleNodeAttributeRemoved):
3692 Adds listeners to the DOMNode specifically listening for changes to the
3693 class attribute and repopulates the class toggle list if fired.
3695 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._classToggleButtonClicked):
3696 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._addClassContainerClicked):
3697 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._addClassInputKeyPressed):
3698 If the Enter key is pressed, add a new class equal to the input value.
3700 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._addClassInputBlur):
3701 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._populateClassToggles):
3702 Loops through all the classes, including previously removed ones, for the
3703 selected node and creates a toggle for each.
3705 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._createToggleForClassName.classNameToggleChanged):
3706 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._createToggleForClassName):
3707 Creates a toggle element for the given className and adds it to the container.
3709 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._toggleClass.resolvedNode.toggleClass):
3710 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._toggleClass.resolvedNode):
3711 (WebInspector.CSSStyleDetailsSidebarPanel.prototype._toggleClass):
3712 Uses the Element.classList to toggle the given className on the selected node.
3714 2016-01-20 Saam barati <sbarati@apple.com>
3716 Web Inspector: Hook the sampling profiler into the Timelines UI
3717 https://bugs.webkit.org/show_bug.cgi?id=152766
3718 <rdar://problem/24066360>
3720 Reviewed by Joseph Pecoraro.
3722 The main change in this patch is to swap in the SamplingProfiler
3723 in place of the LegacyProfiler. To do this, we've created a data
3724 structure called CallingContextTree which aggregates the SamplingProfiler's
3725 data into an easy to manage tree. To see how the data structure works,
3726 consider the following program:
3728 function bar() { // run code here for a long time. }
3729 function baz() { // run code here for a long time. }
3730 function foo() { bar(); baz(); }
3733 From this program, we will create a tree like this:
3743 From this type of tree, we can easily create a CPUProfile payload
3744 object. Because the Timelines UI knows how to interact with the
3745 CPUProfile object and display it, we currently map the tree to this object
3746 to make it trivially easy to display the SamplingProfiler's data. In the future,
3747 we may want to find ways to work directly with the CallingContextTree instead
3748 of mapping it into another object.
3750 * Localizations/en.lproj/localizedStrings.js:
3751 * UserInterface/Controllers/TimelineManager.js:
3752 * UserInterface/Main.html:
3753 * UserInterface/Models/CallingContextTree.js: Added.
3754 * UserInterface/Models/ScriptInstrument.js:
3755 * UserInterface/Protocol/ScriptProfilerObserver.js:
3756 * UserInterface/TestStub.html:
3757 * UserInterface/Views/ScriptTimelineView.js:
3759 2016-01-19 Joseph Pecoraro <pecoraro@apple.com>
3761 Web Inspector: Uncaught exception when logging an Error object
3762 https://bugs.webkit.org/show_bug.cgi?id=153258
3763 <rdar://problem/24249068>
3765 Reviewed by Timothy Hatcher.
3767 * UserInterface/Views/ErrorObjectView.js:
3768 (WebInspector.ErrorObjectView):
3769 Initialize members that are used later for clarity.
3771 (WebInspector.ErrorObjectView.prototype.collapse):
3772 (WebInspector.ErrorObjectView.prototype.expand):
3773 This never has a previewView, remove it.
3775 (WebInspector.ErrorObjectView.prototype.appendTitleSuffix):
3776 Add the suffix ("= $1") after the description and before the
3777 content tree outline.
3779 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com>
3781 Web Inspector: Subclasses of WebInspector.Object shouldn't overwrite this._listeners
3782 https://bugs.webkit.org/show_bug.cgi?id=153268
3783 <rdar://problem/24252766>
3785 Reviewed by Timothy Hatcher.
3787 * UserInterface/Base/Object.js:
3788 (WebInspector.Object.prototype.dispatchEventToListeners):
3789 Add a console.assert.
3791 * UserInterface/Views/BreakpointTreeElement.js:
3792 (WebInspector.BreakpointTreeElement):
3793 (WebInspector.BreakpointTreeElement.prototype.onattach):
3794 (WebInspector.BreakpointTreeElement.prototype.ondetach):
3795 * UserInterface/Views/ProbeSetDataGrid.js:
3796 (WebInspector.ProbeSetDataGrid):
3797 (WebInspector.ProbeSetDataGrid.prototype.closed):
3798 * UserInterface/Views/ProbeSetDetailsSection.js:
3799 (WebInspector.ProbeSetDetailsSection):
3800 (WebInspector.ProbeSetDetailsSection.prototype.closed):
3801 Replace all instances of "this._listeners" with "this._listenerSet".
3803 2016-01-19 Timothy Hatcher <timothy@apple.com>
3805 Web Inspector: Add protocol version for iOS 9.3
3806 https://bugs.webkit.org/show_bug.cgi?id=153256
3807 rdar://problem/24247951
3809 Reviewed by Joseph Pecoraro.
3811 * UserInterface/Protocol/Legacy/9.3/InspectorBackendCommands.js: Added.
3812 * Versions/Inspector-iOS-9.3.json: Added.
3814 2016-01-19 Joseph Pecoraro <pecoraro@apple.com>
3816 REGRESSION: Web Inspector: Hovering linkified node references should show node highlight
3817 https://bugs.webkit.org/show_bug.cgi?id=153248
3818 <rdar://problem/24245518>
3820 Reviewed by Timothy Hatcher.
3822 * UserInterface/Base/DOMUtilities.js:
3823 Show the complete node highlight details (colors and node info).
3825 2016-01-19 Nikita Vasilyev <nvasilyev@apple.com>
3827 Web Inspector: WebInspector.Object.addEventListener is O(n), make it O(1)
3828 https://bugs.webkit.org/show_bug.cgi?id=152422
3829 <rdar://problem/24038047>
3831 Reviewed by Timothy Hatcher.
3833 Slow addEventListener was the main cause of Console sluggishness[1].
3836 addEventListener from O(n) to O(1)