Web Inspector: unify resizer implementations used by DataGrid and Sidebar
[WebKit-https.git] / Source / WebInspectorUI / ChangeLog
1 2015-03-06  Brian J. Burg  <burg@cs.washington.edu>
2
3         Web Inspector: unify resizer implementations used by DataGrid and Sidebar
4         https://bugs.webkit.org/show_bug.cgi?id=142407
5
6         Reviewed by Timothy Hatcher.
7
8         Both of these implementations do the same thing slightly differently. Unify the code
9         and use the "glass pane" technique to preserve cursor while dragging over links or text.
10
11         This patch implements vertical and horizontal rule orientations. Further refactorings
12         to use this class may need to add "Indeterminate" orientation to support moving the inspector
13         window by its fake toolbar element.
14
15         * UserInterface/Main.html:
16         * UserInterface/Views/DataGrid.css:
17         (.data-grid .resizer):
18         (.data-grid-resizer): Deleted.
19         * UserInterface/Views/DataGrid.js: Store Resizer instances rather than resizer elements.
20         Use symbols to secretly store neighbor column ids on the resizer objects. Stop using
21         WebInspector.elementDragStart, as I would like to deprecate it in favor of Resizer instances.
22
23         (WebInspector.DataGrid):
24         (WebInspector.DataGrid.prototype._positionResizerElements):
25         (WebInspector.DataGrid.prototype.resizerDragStarted):
26         (WebInspector.DataGrid.prototype.resizerDragging):
27         (WebInspector.DataGrid.prototype.resizerDragEnded):
28         (WebInspector.DataGrid.prototype._startResizerDragging): Deleted.
29         (WebInspector.DataGrid.prototype._resizerDragging): Deleted.
30         (WebInspector.DataGrid.prototype._endResizerDragging): Deleted.
31         * UserInterface/Views/Resizer.css:
32         (.resizer):
33         (.resizer.vertical-rule):
34         (.resizer.horizontal-rule):
35         (.glass-pane-for-drag):
36         * UserInterface/Views/Resizer.js: Added.
37         (WebInspector.Resizer):
38         (WebInspector.Resizer.prototype.get element):
39         (WebInspector.Resizer.prototype.get orientation):
40         (WebInspector.Resizer.prototype.get initialPosition):
41         (WebInspector.Resizer.prototype._currentPosition):
42         (WebInspector.Resizer.prototype._resizerMouseDown):
43         (WebInspector.Resizer.prototype._resizerMouseMoved):
44         (WebInspector.Resizer.prototype._resizerMouseUp):
45         * UserInterface/Views/Sidebar.css:
46         (.sidebar > .resizer): Deleted.
47         * UserInterface/Views/Sidebar.js:
48         (WebInspector.Sidebar):
49         (WebInspector.Sidebar.prototype.resizerDragStarted):
50         (WebInspector.Sidebar.prototype.resizerDragging):
51         (WebInspector.Sidebar.prototype.resizerDragEnded):
52         (WebInspector.Sidebar.prototype._navigationItemSelected):
53         (WebInspector.Sidebar.prototype._resizerMouseDown): Deleted.
54         (WebInspector.Sidebar.prototype._resizerMouseMoved): Deleted.
55         (WebInspector.Sidebar.prototype._resizerMouseUp): Deleted.
56
57 2015-03-17  Jono Wells  <jonowells@apple.com>
58
59         Web Inspector: Debugger sidebar should have a filter button for breakpoints
60         https://bugs.webkit.org/show_bug.cgi?id=142779
61
62         Reviewed by Timothy Hatcher.
63
64         Add the infrastructure for activation filter buttons that can appear next to the text filters at the bottom
65         of any navigation sidebar panel. These filter bar buttons have defined within them a function that returns
66         a boolean value that indicates whether the input, typically a tree element, should be filtered or not.
67
68         This infrastructure is then used to create a filter for the debugger sidebar that, when applied, only shows
69         scripts that have breakpoints set on them.
70
71         * Localizations/en.lproj/localizedStrings.js: Updated.
72         * UserInterface/Main.html: Files added.
73
74         * UserInterface/Views/DebuggerSidebarPanel.js:
75         (WebInspector.DebuggerSidebarPanel.showResourcesWithChildrenOnlyFilterFunction):
76         (WebInspector.DebuggerSidebarPanel):
77         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Drive-by fix.
78         Add filter button to filter bar.
79
80         * UserInterface/Views/FilterBar.css:
81         (.filter-bar > .navigation-bar > .item):
82         Style filter button.
83
84         * UserInterface/Views/FilterBar.js:
85         (WebInspector.FilterBar):
86         (WebInspector.FilterBar.prototype.get filters):
87         (WebInspector.FilterBar.prototype.set filters):
88         (WebInspector.FilterBar.prototype.hasActiveFilters):
89         (WebInspector.FilterBar.prototype._handleFilterChanged):
90         (WebInspector.FilterBar.prototype._inputFieldChanged): Deleted.
91         Create space for filter bar buttons and set up event handlers to deal with them.
92
93         * UserInterface/Views/FilterBarButton.js: Copied from Source/WebInspectorUI/UserInterface/Views/FilterBar.css.
94         (WebInspector.FilterBarButton):
95         (WebInspector.FilterBarButton.prototype.get filterFunction):
96         (WebInspector.FilterBarButton.prototype.toggle):
97         Create class for a filter bar button that stores a filter function.
98
99         * UserInterface/Views/NavigationSidebarPanel.js:
100         (WebInspector.NavigationSidebarPanel):
101         (WebInspector.NavigationSidebarPanel.prototype.matchTreeElementAgainstFilterFunctions):
102         (WebInspector.NavigationSidebarPanel.prototype.applyFiltersToTreeElement):
103         (WebInspector.NavigationSidebarPanel.prototype._filterDidChange):
104         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
105         (WebInspector.NavigationSidebarPanel.prototype._textFilterDidChange): Deleted.
106         Add functionality to support button filters and process their corresponding functions correctly when filtering.
107
108 2015-03-22  Matt Baker  <mattbaker@apple.com>
109
110         Web Inspector: Adopt ES6 Class Syntax for all Controller Objects
111         https://bugs.webkit.org/show_bug.cgi?id=142890
112
113         Reviewed by Joseph Pecoraro.
114
115         - Convert all UserInterface/Controllers objects to classes
116         - Convert constructor functions to constructor methods
117         - Convert "constructor.method" to class static methods where possible
118         - Convert all methods to method syntax, eliminate commas between methods
119         - Convert all superclass calls in classes to use "super"
120         - Removed FIXME from WebInspector.Object subclasses, added calls to super.
121         - Fixed strict mode issues now that classes enforce strict mode (see below).
122
123         * Tools/PrettyPrinting/Formatter.js:
124         * Tools/PrettyPrinting/FormatterContentBuilder.js:
125         Updated to match corresponding files in UserInterface/Controllers.
126
127         * UserInterface/Controllers/*.js:
128         Many files modified mostly mechanically (regex find-replace).
129
130         * UserInterface/Controllers/CodeMirrorCompletionController.js:
131         * UserInterface/Controllers/FormatterContentBuilder.js:
132         Replaced const usage with var. Use of const is prohibited in strict mode, which is implicit within a class.
133
134         * UserInterface/Controllers/CodeMirrorTokenTrackingController.js:
135         * UserInterface/Controllers/DOMTreeManager.js:
136         Moved function declarations out of if statements. Strict mode does not allow function declarations in a lexically nested statement.
137
138 2015-03-20  Nikita Vasilyev  <nvasilyev@apple.com>
139
140         Web Inspector: Fast typing lags in the Styles sidebar or Console
141         https://bugs.webkit.org/show_bug.cgi?id=142919
142
143         Asynchronous autocomplete causes a race condition in CodeMirror,
144         which results in skipped characters in while typing. Completing immediately
145         fixes the issues.
146
147         Reviewed by Timothy Hatcher.
148
149         * UserInterface/Controllers/CodeMirrorCompletionController.js:
150         (WebInspector.CodeMirrorCompletionController.prototype.hideCompletions):
151         (WebInspector.CodeMirrorCompletionController.prototype._completeAtCurrentPosition):
152         (WebInspector.CodeMirrorCompletionController.prototype.):
153
154 2015-03-19  Joseph Pecoraro  <pecoraro@apple.com>
155
156         Web Inspector: Adopt ES6 Class Syntax for all Model Objects
157         https://bugs.webkit.org/show_bug.cgi?id=142858
158
159         Reviewed by Timothy Hatcher.
160
161           - Convert WebInspector.Object to a class
162           - Convert all UserInterface/Models objects to classes
163           - Convert constructor functions to constructor methods
164           - Convert "constructor.method" to class static methods where possible
165           - Convert all methods to method syntax, eliminate commas between methods
166           - Convert all superclass calls in classes to use "super"
167           - Workaround <https://webkit.org/b/142862> and add empty constructors
168           - Added "deprecated" prefix to addConstructorFunctions, since it is not needed with classes
169           - Added many missing calls to super in constructors
170           - Added FIXME to WebInspector.Object subclasses not yet moved to classes.
171           - Cleaned up SourceMap global properties, moved to constructor instead of prototype
172           - Cleaned up Timeline factory constructor to static "create" factory method
173           - Fixed any style issues noticed in the mass edit
174           - Fixed strict mode issues now that classes enforce strict mode
175               - RunLoopTimelineRecord.js was missing a `var` for a local variable
176               - "const" is not allowed, converted to "var"
177               - "arguments.callee" is not allowed in strict mode
178
179         * UserInterface/**/*.js:
180         Many files modified mostly mechanically.
181
182 2015-03-19  Jono Wells  <jonowells@apple.com>
183
184         Web Inspector: Debugger sidebar header should say "Scripts" instead of "Breakpoints", appear only on pause
185         https://bugs.webkit.org/show_bug.cgi?id=142847
186
187         Reviewed by Timothy Hatcher.
188
189         Add a `paused` class on the debugger sidebar panel. Use that class to adjust the sidebar styles so that, when
190         the debugger is not paused: there is no header for the scripts section, there is no border beneath the scripts
191         section, and the scripts section cannot be collapsed (which could be done while the debugger is paused). The
192         header has changed to say "Scripts" instead of "Breakpoints" when it is showing.
193
194         * UserInterface/Views/DebuggerSidebarPanel.css:
195         (.sidebar > .panel.navigation.debugger .details-section.scripts):
196         (.sidebar > .panel.navigation.debugger .details-section.scripts .header):
197         (.sidebar > .panel.navigation.debugger .details-section.scripts.collapsed > .content):
198         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts):
199         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts .header):
200         (.sidebar > .panel.navigation.debugger.paused .details-section.scripts.collapsed > .content):
201         Adjust styles to hide header and border.
202
203         * UserInterface/Views/DebuggerSidebarPanel.js:
204         (WebInspector.DebuggerSidebarPanel):
205         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidPause):
206         (WebInspector.DebuggerSidebarPanel.prototype._debuggerDidResume):
207         Add a `paused` class to the debugger sidebar when it is paused.
208
209 2015-03-19  Jono Wells  <jonowells@apple.com>
210
211         Web Inspector: FilterBar for debugger sidebar hides breakpoints for displayed resources
212         https://bugs.webkit.org/show_bug.cgi?id=142777
213
214         Reviewed by Brian Burg.
215
216         Typing into the text input on the filter bar for the debugger sidebar no longer incorrectly hides the
217         breakpoints for scripts that match the text input.
218
219         * UserInterface/Views/BreakpointTreeElement.js:
220         (WebInspector.BreakpointTreeElement.prototype.get filterableData): Added.
221
222 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
223
224         Web Inspector: Replace last use of ObjectPropertiesSection with ObjectTreeView
225         https://bugs.webkit.org/show_bug.cgi?id=142834
226
227         Reviewed by Timothy Hatcher.
228
229         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
230         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties):
231         Use properties only ObjectTreeView instead of ObjectPropertiesSection.
232         This doesn't fix the functionality issues, but fixes the appearance.
233
234         * UserInterface/Views/DetailsSection.css:
235         (.details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
236         (body.mac-platform.legacy .details-section > .content > .group:first-child > .row.simple:first-child > *): Deleted.
237         (.details-section > .content > .group > .row.properties:not(.empty)): Deleted.
238         (body.mac-platform.legacy .details-section > .content > .group > .row.properties:not(.empty)): Deleted.
239         Re-add back the small padding at the top of sections. This actually
240         broke padding in a few sections (Event Listeners) at the expense
241         of eliminating a few pixels of whitespace at the top of other sections.
242         We should focus on addressing the extra whitespace separately.
243
244         * UserInterface/Main.html:
245         * UserInterface/Views/ObjectPropertiesSection.js: Removed.
246         * UserInterface/Views/TypePropertiesSection.js:
247         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
248         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
249         Remove new unused class.
250
251 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
252
253         Web Inspector: Debugger Popovers and Probes should use FormattedValue/ObjectTreeView instead of Custom/ObjectPropertiesSection
254         https://bugs.webkit.org/show_bug.cgi?id=142830
255
256         Reviewed by Timothy Hatcher.
257
258         * UserInterface/Views/ProbeSetDataGrid.css:
259         (.details-section.probe-set .data-grid .object-tree > :matches(.title, .object-preview)::before):
260         Another line-height fix for object tree disclosure triangles.
261
262         * UserInterface/Views/ProbeSetDataGridNode.js:
263         (WebInspector.ProbeSetDataGridNode.prototype.createCellContent):
264         Create an ObjectTree / FormattedValue for the RemoteObject.
265
266         * UserInterface/Views/SourceCodeTextEditor.css:
267         (.popover .debugger-popover-content > .title):
268         (.popover .debugger-popover-content > .body):
269         (.popover .debugger-popover-content.function > .body):
270         Be more specific and don't accidentally style ".title" within the body.
271
272         * UserInterface/Views/SourceCodeTextEditor.js:
273         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForObject):
274         Show a properties only ObjectTree instead of an ObjectPropertiesSection.
275
276         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString): Deleted.
277         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp): Deleted.
278         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber): Deleted.
279         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean): Deleted.
280         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull): Deleted.
281         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined): Deleted.
282         (WebInspector.SourceCodeTextEditor.prototype._showPopoverWithFormattedValue):
283         Reduce most of these to a single popover for formatted values.
284
285 2015-03-18  Joseph Pecoraro  <pecoraro@apple.com>
286
287         Web Inspector: Scopes sidebar should use new ObjectTreeView and not ObjectPropertiesSection
288         https://bugs.webkit.org/show_bug.cgi?id=142808
289
290         Reviewed by Timothy Hatcher.
291
292         * UserInterface/Models/PropertyPath.js:
293         (WebInspector.PropertyPath):
294         (WebInspector.PropertyPath.emptyPropertyPathForScope):
295         Allow a special property empty path for "Scopes". This way for a
296         "<scopeObject>.property" we can show just the tooltip "property".
297
298         * UserInterface/Views/ObjectTreeView.css:
299         (.object-tree.properties-only > :matches(.title, .object-preview)):
300         (.object-tree.properties-only .object-tree-outline):
301         (.object-tree.properties-only .object-tree-property .property-name):
302         Tweak styles for only properties view, which won't have a top-level
303         preview and doesn't fade out enumerable properties.
304
305         * UserInterface/Views/ObjectTreeView.js:
306         (WebInspector.ObjectTreeView.prototype.get treeOutline):
307         Access the TreeOutline.
308
309         (WebInspector.ObjectTreeView.prototype.showOnlyProperties):
310         Properties only view modifies the display slightly.
311
312         (WebInspector.ObjectTreeView.prototype.appendExtraPropertyDescriptor):
313         (WebInspector.ObjectTreeView.prototype._updateProperties):
314         Allow the client to add its own property descriptors to display
315         as a property in this ObjectTreeView.
316
317         * UserInterface/Views/ScopeChainDetailsSidebarPanel.js:
318         (WebInspector.ScopeChainDetailsSidebarPanel.prototype.refresh):
319         Switch to using an ObjectTreeView.
320
321         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._propertyPathIdentifierForTreeElement):
322         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeAddHandler):
323         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeExpandHandler):
324         (WebInspector.ScopeChainDetailsSidebarPanel.prototype._objectTreeCollapseHandler):
325         Keep track of what properties were expanded so we can auto-expand
326         them again when the sidebar refreshes.
327
328         * UserInterface/Main.html:
329         * UserInterface/Views/ScopeVariableTreeElement.js: Removed.
330         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
331         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
332         Remove the now unused ScopeVariableTreeElement.js.
333
334 2015-03-17  Joseph Pecoraro  <pecoraro@apple.com>
335
336         Web Inspector: Debugger Sidebar Icons Misaligned
337         https://bugs.webkit.org/show_bug.cgi?id=142654
338
339         Reviewed by Timothy Hatcher.
340
341         The debugger sidebar content was accidentally 1px too small. The
342         TreeOutline being inside of a .detail-section was getting a smaller
343         font-size. We should just have the normal font-size for the
344         debugger navigation sidebar. This matches the Resources sidebar
345         in the TreeOutline, and icons line up better.
346
347         * UserInterface/Views/DebuggerSidebarPanel.css:
348         (.sidebar > .panel.navigation.debugger .details-section):
349
350 2015-03-17  Tobias Reiss  <tobi+webkit@basecode.de>
351
352         Web Inspector: Removal of multiline completion hint broken in Details sidebar
353         https://bugs.webkit.org/show_bug.cgi?id=142796
354
355         Reviewed by Joseph Pecoraro.
356
357         Prioritize CodeMirrorCompletionController over CSSStyleDeclarationTextEditor.
358         Both classes control the current CodeMirror instance of the Details Sidebar.
359         This change prevents possible race conditions during complete or delete-complete phases,
360         especially during operations on multiple styles in one line.
361
362         * UserInterface/Views/CSSStyleDeclarationTextEditor.js:
363         (WebInspector.CSSStyleDeclarationTextEditor):
364
365 2015-03-17  Matt Baker  <mattbaker@apple.com>
366
367         Web Inspector: Show rendering frames (and FPS) in Layout and Rendering timeline
368         https://bugs.webkit.org/show_bug.cgi?id=142029
369
370         Reviewed by Timothy Hatcher.
371
372         Add UI for showing runloop records and their child records as a frame histogram,
373         with the recording time on the x-axis and the frame duration on the y-axis. Each frame
374         is comprised of colored regions representing the time spent in various activities (script,
375         layout, etc).
376
377         Eventually the Frames timeline will replace the Layout & Rendering timeline. Until the views
378         for the new timeline are finalized the Layout & Rendering timeline will remain in place.
379
380         * Localizations/en.lproj/localizedStrings.js:
381         * UserInterface/Main.html:
382         New string and files.
383
384         * UserInterface/Controllers/TimelineManager.js:
385         (WebInspector.TimelineManager.prototype.eventRecorded):
386         (WebInspector.TimelineManager.prototype.pageDidLoad):
387         (WebInspector.TimelineManager.prototype._processNestedRecords):
388         (WebInspector.TimelineManager.prototype._processRecord):
389         (WebInspector.TimelineManager.prototype._processEvent):
390         (WebInspector.TimelineManager.prototype._loadNewRecording):
391         (WebInspector.TimelineManager.prototype.eventRecorded.processRecord): Deleted.
392         Added support for new runloop record type and nested record handling.
393
394         * UserInterface/Images/Frames.png: Added.
395         * UserInterface/Images/Frames@2x.png: Added.
396         * UserInterface/Images/FramesLarge.png: Added.
397         * UserInterface/Images/FramesLarge@2x.png: Added.
398         New images for runloop timeline overview graph and runloop tree records.
399
400         * UserInterface/Models/RunLoopTimelineRecord.js: Added.
401         (WebInspector.RunLoopTimelineRecord):
402         (WebInspector.RunLoopTimelineRecord.prototype.get children):
403         (WebInspector.RunLoopTimelineRecord.prototype.get durationRemainder):
404         (WebInspector.RunLoopTimelineRecord.prototype.durationForRecords.get var):
405         Extends TimelineRecord to add child records and subframe duration details.
406
407         * UserInterface/Models/Timeline.js:
408         (WebInspector.Timeline.prototype.get displayName):
409         (WebInspector.Timeline.prototype.get iconClassName):
410         New UI strings and icons.
411
412         * UserInterface/Models/TimelineRecord.js:
413         * UserInterface/Views/ContentView.js:
414         (WebInspector.ContentView):
415         * UserInterface/Views/LayoutTimelineView.js:
416         (WebInspector.LayoutTimelineView.prototype._layoutTimelineRecordAdded):
417         * UserInterface/Views/TimelineRecordTreeElement.js:
418         (WebInspector.TimelineRecordTreeElement):
419         Added support for new runloop record type.
420
421         * UserInterface/Views/RunLoopTimelineOverviewGraph.css: Added.
422         (.timeline-overview-graph.runloop > .divider):
423         (.timeline-overview-graph.runloop > .divider > span):
424         New styles for runloop timeline graph.
425
426         * UserInterface/Views/RunLoopTimelineOverviewGraph.js: Added.
427         (WebInspector.RunLoopTimelineOverviewGraph):
428         (WebInspector.RunLoopTimelineOverviewGraph.prototype.updateLayout.createFrame):
429         (WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds.this):
430         (WebInspector.RunLoopTimelineOverviewGraph.prototype.get graphHeightSeconds):
431         (WebInspector.RunLoopTimelineOverviewGraph.prototype._updateDividers.createDividerAtPosition.get if):
432         New overview graph for displaying TimelineRecordFrames and horizontal frame budget dividers.
433
434         * UserInterface/Views/TimelineIcons.css:
435         (.runloop-icon .icon):
436         (.runloop-icon.large .icon):
437         (.runloop-record .icon):
438         * UserInterface/Views/TimelineSidebarPanel.js:
439         New runloop icon styles.
440
441         * UserInterface/Views/TimelineOverviewGraph.js:
442         (WebInspector.TimelineOverviewGraph):
443         Updated factory to support creation of the new overview graph.
444
445         * UserInterface/Views/TimelineRecordFrame.css: Added.
446         (.timeline-record-frame):
447         (.timeline-record-frame > .frame):
448         (.timeline-record-frame > .dropped):
449         (.timeline-record-frame > .frame > .duration):
450         (.timeline-record-frame > .frame > .duration:first-child):
451         (.timeline-record-frame > .frame > .duration:last-child):
452         (.timeline-record-frame > .frame > .duration.timeline-record-type-network):
453         (.timeline-record-frame > .frame > .duration.timeline-record-type-layout):
454         (.timeline-record-frame > .frame > .duration.timeline-record-type-script):
455         New styles for frame bars in the runloop timeline graph.
456
457         * UserInterface/Views/TimelineRecordFrame.js: Added.
458         (WebInspector.TimelineRecordFrame):
459         (WebInspector.TimelineRecordFrame.createCombinedFrames):
460         (WebInspector.TimelineRecordFrame.prototype.get element):
461         (WebInspector.TimelineRecordFrame.prototype.get duration):
462         (WebInspector.TimelineRecordFrame.prototype.get records):
463         (WebInspector.TimelineRecordFrame.prototype.set records):
464         (WebInspector.TimelineRecordFrame.prototype._updateChildElements.createDurationElement):
465         New view representing a single frame within the runloop overview graph.
466
467         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
468         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
469         New files.
470
471 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
472
473         Web Inspector: Add more DOM Native Function parameter strings
474         https://bugs.webkit.org/show_bug.cgi?id=142760
475
476         Reviewed by Timothy Hatcher.
477
478         * UserInterface/Models/NativeFunctionParameters.js:
479         Add native parameter strings generated and hand modified
480         for DOM built-in classes.
481
482         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
483         For native constructors "FooConstructor" the description is just
484         the name of the Constructor not the function string.
485
486 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
487
488         Web Inspector: Object Previews in Indexed DB tables
489         https://bugs.webkit.org/show_bug.cgi?id=140813
490
491         Reviewed by Timothy Hatcher.
492
493         * UserInterface/Views/FormattedValue.js:
494         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
495         Add a boolean param for ObjectTree construction if it should force allowing object expansion.
496
497         * UserInterface/Views/IndexedDatabaseEntryDataGridNode.js:
498         (WebInspector.IndexedDatabaseEntryDataGridNode.prototype.createCellContent):
499         Switch to creating an ObjectTree or FormattedValue.
500
501         * UserInterface/Views/IndexedDatabaseObjectStoreContentView.css:
502         (.content-view.indexed-database-object-store > .data-grid tr.selected):
503         Change row selection color to match the console's lighter blue instead of dark blue.
504
505         (.content-view.indexed-database-object-store > .data-grid .object-tree > :matches(.title, .object-preview)::before):
506         Adjust object tree disclosure triangle placement for larger line heights.
507
508         (.content-view.indexed-database-object-store > .data-grid td .section .header): Deleted.
509         (.content-view.indexed-database-object-store > .data-grid td .section .header::before): Deleted.
510         (.content-view.indexed-database-object-store > .data-grid td .section .header .title): Deleted.
511         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section .header::before): Deleted.
512         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .section.expanded .header::before): Deleted.
513         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent::before): Deleted.
514         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li.parent.expanded::before): Deleted.
515         (.content-view.indexed-database-object-store > .data-grid:focus tr.selected td .properties-tree li *): Deleted.
516         Remove now unnecessary styles.
517
518         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
519         (.object-tree .object-tree-array-index > .icon):
520         Increase the specificity to override ".data-grid td .icon" styles.
521
522 2015-03-16  Joseph Pecoraro  <pecoraro@apple.com>
523
524         Web Inspector: Better Console Previews for Arrays / Small Objects
525         https://bugs.webkit.org/show_bug.cgi?id=142322
526
527         Reviewed by Timothy Hatcher.
528
529         * UserInterface/Views/ObjectPreviewView.js:
530         If there is a sub-preview, show the sub-preview.
531
532         * UserInterface/Views/ObjectTreeView.js:
533         (WebInspector.ObjectTreeView):
534         For an ObjectTree that is not a root (e.g. one inside of
535         an array/set/map property tree element) allow it to be
536         expanded even if the preview is lossless.
537
538 2015-03-16  Nikita Vasilyev  <nvasilyev@apple.com>
539
540         Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
541         https://bugs.webkit.org/show_bug.cgi?id=142712
542
543         As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
544
545           - Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
546           - Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
547           - Rename ConsoleMessage.js file to LegacyConsoleMessage.js
548           - Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
549
550         Reviewed by Joseph Pecoraro.
551
552         * UserInterface/Controllers/JavaScriptLogViewController.js:
553         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
554         * UserInterface/Controllers/LogManager.js:
555         (WebInspector.LogManager.prototype.messageWasAdded):
556         * UserInterface/Main.html:
557         * UserInterface/Models/DefaultDashboard.js:
558         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
559         * UserInterface/Views/ConsoleCommandResult.js:
560         (WebInspector.ConsoleCommandResult):
561         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
562         * UserInterface/Views/ConsoleGroup.js:
563         (WebInspector.ConsoleGroup.prototype.render):
564         * UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
565         (WebInspector.LegacyConsoleMessage):
566         (WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
567         (WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
568         (WebInspector.LegacyConsoleMessage.prototype.clone):
569         (WebInspector.LegacyConsoleMessage.create):
570         * UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
571         (WebInspector.LegacyConsoleMessageImpl):
572         (WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
573         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
574         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
575         (WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
576         (WebInspector.LegacyConsoleMessageImpl.prototype.get message):
577         (WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
578         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
579         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
580         (WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
581         (WebInspector.LegacyConsoleMessageImpl.prototype._format):
582         (WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
583         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
584         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
585         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
586         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
587         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
588         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
589         (WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
590         (WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
591         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
592         (WebInspector.LegacyConsoleMessageImpl.prototype.):
593         (WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
594         (WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
595         (WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
596         (WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
597         (WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
598         (WebInspector.LegacyConsoleMessageImpl.prototype.append):
599         (WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
600         (WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
601         (WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
602         (WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
603         (WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
604         (WebInspector.LegacyConsoleMessageImpl.prototype.toString):
605         (WebInspector.LegacyConsoleMessageImpl.prototype.get text):
606         (WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
607         (WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
608         (WebInspector.LegacyConsoleMessageImpl.prototype.clone):
609         (WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
610         (WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
611         (WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
612         * UserInterface/Views/LogContentView.js:
613         (WebInspector.LogContentView.prototype.didAppendConsoleMessage):
614         (WebInspector.LogContentView.prototype._messageAdded):
615         (WebInspector.LogContentView.prototype._filterMessages):
616         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
617         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
618         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
619
620 2015-03-16  Commit Queue  <commit-queue@webkit.org>
621
622         Unreviewed, rolling out r181517.
623         https://bugs.webkit.org/show_bug.cgi?id=142718
624
625         This patch broke GTK+ build (Requested by NVI on #webkit).
626
627         Reverted changeset:
628
629         "Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl
630         to LegacyConsoleMessage and LegacyConsoleMessageImpl
631         respectively"
632         https://bugs.webkit.org/show_bug.cgi?id=142712
633         http://trac.webkit.org/changeset/181517
634
635 2015-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
636
637         Web Inspector: Console Scrolls Unexpectedly when Clicking inside un-selected Expanding Object
638         https://bugs.webkit.org/show_bug.cgi?id=142655
639
640         Don't scroll when selection change is triggered by clicking, e.g.
641         only scroll on arrow up and down key press events.
642
643         Reviewed by Joseph Pecoraro.
644
645         * UserInterface/Views/LogContentView.js:
646         (WebInspector.LogContentView.prototype._mousemove):
647         (WebInspector.LogContentView.prototype._updateMessagesSelection):
648         (WebInspector.LogContentView.prototype._upArrowWasPressed):
649         (WebInspector.LogContentView.prototype._downArrowWasPressed):
650
651 2015-03-15  Nikita Vasilyev  <nvasilyev@apple.com>
652
653         Web Inspector: Rename ConsoleMessage and ConsoleMessageImpl to LegacyConsoleMessage and LegacyConsoleMessageImpl respectively
654         https://bugs.webkit.org/show_bug.cgi?id=142712
655
656         As a first step of ConsoleMessage refactoring (https://bugs.webkit.org/show_bug.cgi?id=142599):
657
658           - Rename WebInspector.ConsoleMessage class to WebInspector.LegacyConsoleMessage
659           - Rename WebInspector.ConsoleMessageImpl class to WebInspector.LegacyConsoleMessageImpl
660           - Rename ConsoleMessage.js file to LegacyConsoleMessage.js
661           - Rename ConsoleMessageImpl file to LegacyConsoleMessageImpl.js
662
663         Reviewed by Joseph Pecoraro.
664
665         * UserInterface/Controllers/JavaScriptLogViewController.js:
666         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
667         * UserInterface/Controllers/LogManager.js:
668         (WebInspector.LogManager.prototype.messageWasAdded):
669         * UserInterface/Main.html:
670         * UserInterface/Models/DefaultDashboard.js:
671         (WebInspector.DefaultDashboard.prototype._incrementConsoleMessageType):
672         * UserInterface/Views/ConsoleCommandResult.js:
673         (WebInspector.ConsoleCommandResult):
674         (WebInspector.ConsoleCommandResult.prototype.toMessageElement):
675         * UserInterface/Views/ConsoleGroup.js:
676         (WebInspector.ConsoleGroup.prototype.render):
677         * UserInterface/Views/LegacyConsoleMessage.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessage.js.
678         (WebInspector.LegacyConsoleMessage):
679         (WebInspector.LegacyConsoleMessage.prototype.isErrorOrWarning):
680         (WebInspector.LegacyConsoleMessage.prototype.updateRepeatCount):
681         (WebInspector.LegacyConsoleMessage.prototype.clone):
682         (WebInspector.LegacyConsoleMessage.create):
683         * UserInterface/Views/LegacyConsoleMessageImpl.js: Renamed from Source/WebInspectorUI/UserInterface/Views/ConsoleMessageImpl.js.
684         (WebInspector.LegacyConsoleMessageImpl):
685         (WebInspector.LegacyConsoleMessageImpl.prototype._formatMessage):
686         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldDumpStackTrace):
687         (WebInspector.LegacyConsoleMessageImpl.prototype._shouldHideURL):
688         (WebInspector.LegacyConsoleMessageImpl.prototype._firstNonNativeCallFrame):
689         (WebInspector.LegacyConsoleMessageImpl.prototype.get message):
690         (WebInspector.LegacyConsoleMessageImpl.prototype.get formattedMessage):
691         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyLocation):
692         (WebInspector.LegacyConsoleMessageImpl.prototype._linkifyCallFrame):
693         (WebInspector.LegacyConsoleMessageImpl.prototype.isErrorOrWarning):
694         (WebInspector.LegacyConsoleMessageImpl.prototype._format):
695         (WebInspector.LegacyConsoleMessageImpl.prototype._isExpandable):
696         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameter):
697         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsValue):
698         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsObject):
699         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsString):
700         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsNode):
701         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsArray):
702         (WebInspector.LegacyConsoleMessageImpl.prototype._rootPropertyPathForObject):
703         (WebInspector.LegacyConsoleMessageImpl.prototype._userProvidedColumnNames):
704         (WebInspector.LegacyConsoleMessageImpl.prototype._formatParameterAsTable):
705         (WebInspector.LegacyConsoleMessageImpl.prototype.):
706         (WebInspector.LegacyConsoleMessageImpl.prototype.stringFormatter):
707         (WebInspector.LegacyConsoleMessageImpl.prototype.floatFormatter):
708         (WebInspector.LegacyConsoleMessageImpl.prototype.integerFormatter):
709         (WebInspector.LegacyConsoleMessageImpl.prototype.styleFormatter):
710         (WebInspector.LegacyConsoleMessageImpl.prototype.isWhitelistedProperty):
711         (WebInspector.LegacyConsoleMessageImpl.prototype.append):
712         (WebInspector.LegacyConsoleMessageImpl.prototype._formatWithSubstitutionString):
713         (WebInspector.LegacyConsoleMessageImpl.prototype.decorateMessageElement):
714         (WebInspector.LegacyConsoleMessageImpl.prototype.toMessageElement):
715         (WebInspector.LegacyConsoleMessageImpl.prototype._populateStackTraceTreeElement):
716         (WebInspector.LegacyConsoleMessageImpl.prototype.updateRepeatCount):
717         (WebInspector.LegacyConsoleMessageImpl.prototype.toString):
718         (WebInspector.LegacyConsoleMessageImpl.prototype.get text):
719         (WebInspector.LegacyConsoleMessageImpl.prototype.isEqual):
720         (WebInspector.LegacyConsoleMessageImpl.prototype.get stackTrace):
721         (WebInspector.LegacyConsoleMessageImpl.prototype.clone):
722         (WebInspector.LegacyConsoleMessageImpl.prototype.get levelString):
723         (WebInspector.LegacyConsoleMessageImpl.prototype.get clipboardPrefixString):
724         (WebInspector.LegacyConsoleMessageImpl.prototype.toClipboardString):
725         * UserInterface/Views/LogContentView.js:
726         (WebInspector.LogContentView.prototype.didAppendConsoleMessage):
727         (WebInspector.LogContentView.prototype._messageAdded):
728         (WebInspector.LogContentView.prototype._filterMessages):
729         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
730         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
731         * WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
732
733 2015-03-12  Jono Wells  <jonowells@apple.com>
734
735         Web Inspector: Debugger sidebar should group global breakpoints together
736         https://bugs.webkit.org/show_bug.cgi?id=142607
737
738         Reviewed by Timothy Hatcher.
739
740         Update the DebuggerSidebarPanel class to hold global breakpoints such as "All Exceptions" in one container. This
741         will be the place future such breakpoints are added.
742
743         * Localizations/en.lproj/localizedStrings.js: Added string.
744         * UserInterface/Main.html: Small rearrangement.
745
746         * UserInterface/Views/DebuggerSidebarPanel.js: Change how exception breaking options are displayed.
747         (WebInspector.DebuggerSidebarPanel):
748         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected):
749         (WebInspector.DebuggerSidebarPanel.prototype._compareTopLevelTreeElements):
750
751         * UserInterface/Views/FolderTreeElement.js: Support additional classes for icons.
752         * UserInterface/Views/ResourceSidebarPanel.js: Change call to FolderTreeElement constructor.
753
754 2015-03-12  Joseph Pecoraro  <pecoraro@apple.com>
755
756         Web Inspector: Console Errors during provisional document loads get lost with "Clear Log on Reload"
757         https://bugs.webkit.org/show_bug.cgi?id=142603
758
759         Reviewed by Timothy Hatcher.
760
761         * UserInterface/Views/LogContentView.js:
762         (WebInspector.LogContentView.prototype._messageAdded):
763         (WebInspector.LogContentView.prototype._provisionalLoadStarted):
764         Detect a provisional load has started to start save messages that come in at this time.
765
766         (WebInspector.LogContentView.prototype._sessionStarted):
767         Reappend provisional load messages if we auto-cleared.
768
769         (WebInspector.LogContentView.prototype._reappendProvisionalMessages):
770         (WebInspector.LogContentView.prototype._clearProvisionalState):
771         Helpers for dealing with the provisional loading state.
772
773 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
774
775         Web Inspector: CSS parser errors in the console should include column numbers
776         https://bugs.webkit.org/show_bug.cgi?id=114313
777
778         Reviewed by Darin Adler.
779
780         * UserInterface/Views/ConsoleMessageImpl.js:
781         (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
782         Column numbers in console messages are also 1 based and should be adjusted.
783
784 2015-03-11  Commit Queue  <commit-queue@webkit.org>
785
786         Unreviewed, rolling out r181367.
787         https://bugs.webkit.org/show_bug.cgi?id=142581
788
789         Caused crashes on the debug bots (Requested by cdumez on
790         #webkit).
791
792         Reverted changeset:
793
794         "Web Inspector: CSS parser errors in the console should
795         include column numbers"
796         https://bugs.webkit.org/show_bug.cgi?id=114313
797         http://trac.webkit.org/changeset/181367
798
799 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
800
801         Web Inspector: Reload after Global Search results in empty Resources Sidebar.
802         https://bugs.webkit.org/show_bug.cgi?id=142572
803
804         Reviewed by Timothy Hatcher.
805
806         If you reload when the search content tree outline is showing, break out
807         to show the resource tree outline.
808
809         * UserInterface/Views/ResourceSidebarPanel.js:
810         (WebInspector.ResourceSidebarPanel.prototype._showResourcesContentTreeOutline):
811         (WebInspector.ResourceSidebarPanel.prototype._showSearchContentTreeOutline):
812
813 2015-03-11  Joseph Pecoraro  <pecoraro@apple.com>
814
815         Web Inspector: SearchResultTreeElement.representedObject is missing a saveIdentityToCookie implementation
816         https://bugs.webkit.org/show_bug.cgi?id=134698
817
818         Reviewed by Timothy Hatcher.
819
820         This will restore selection of a global search tree element if you
821         close and reopen the inspector in such a case.
822
823         * UserInterface/Models/DOMSearchMatchObject.js:
824         (WebInspector.DOMSearchMatchObject.prototype.get resource):
825         (WebInspector.DOMSearchMatchObject.titleForDOMNode):
826         Cookie has the resource URL, DOM Node title, and text range.
827
828         * UserInterface/Models/SourceCodeSearchMatchObject.js:
829         (WebInspector.SourceCodeSearchMatchObject.prototype.get sourceCodeTextRange):
830         Cookie has the source code URL and text range.
831
832 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
833
834         Web Inspector: CSS parser errors in the console should include column numbers
835         https://bugs.webkit.org/show_bug.cgi?id=114313
836
837         Reviewed by Benjamin Poulain.
838
839         * UserInterface/Views/ConsoleMessageImpl.js:
840         (WebInspector.ConsoleMessageImpl.prototype._linkifyLocation):
841         Column numbers in console messages are also 1 based and should be adjusted.
842
843 2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>
844
845         Web Inspector: console.error output broken, does not produce ObjectTree
846         https://bugs.webkit.org/show_bug.cgi?id=142554
847
848         Reviewed by Timothy Hatcher.
849
850         * UserInterface/Models/IssueMessage.js:
851         (WebInspector.IssueMessage):
852         * UserInterface/Protocol/ConsoleObserver.js:
853         (WebInspector.ConsoleObserver.prototype.messageAdded):
854
855 2015-03-10  Saam Barati  <saambarati1@gmail.com>
856
857         Web Inspector: Destructuring function parameters should show type information
858         https://bugs.webkit.org/show_bug.cgi?id=142233
859
860         Reviewed by Joseph Pecoraro.
861
862         JSC supports a function's formal parameter being a destructuring pattern, 
863         and so should the type profiler in the Inspector. This was just an oversight 
864         not to have this in bug 141215.
865
866         This patch also does a bit of refactoring to not have duplicate code
867         that traverses AST nodes in TypeTokenAnnotator and ScriptSyntaxTree.
868         Before, both of these classes were responsible for traversing the AST
869         in an identical way, this is bad. Now, ScriptSyntaxTree contains the
870         canonical implementation of how the AST should be traversed and which
871         AST nodes should be collected for type profiling. ScriptSyntaxTree will
872         pass this information back to TypeTokenAnnotator.
873
874         * UserInterface/Controllers/TypeTokenAnnotator.js:
875         (WebInspector.TypeTokenAnnotator.prototype._insertTypeToken):
876         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode): Deleted.
877         * UserInterface/Models/ScriptSyntaxTree.js:
878         (WebInspector.ScriptSyntaxTree.prototype.):
879         (WebInspector.ScriptSyntaxTree.prototype.updateTypes):
880         (WebInspector.ScriptSyntaxTree.prototype._gatherIdentifiersInDeclaration):
881         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration): Deleted.
882
883 2015-03-09  Joseph Pecoraro  <pecoraro@apple.com>
884
885         Web Inspector: Inline Error / Warning message for Issues
886         https://bugs.webkit.org/show_bug.cgi?id=142520
887
888         Reviewed by Timothy Hatcher.
889
890         * Localizations/en.lproj/localizedStrings.js:
891         * UserInterface/Main.html:
892         New strings and new files.
893
894         * UserInterface/Controllers/IssueManager.js:
895         (WebInspector.IssueManager.prototype.issueWasAdded):
896         * UserInterface/Models/IssueMessage.js:
897         (WebInspector.IssueMessage):
898         (WebInspector.IssueMessage.prototype.get columnNumber):
899         * UserInterface/Protocol/ConsoleObserver.js:
900         (WebInspector.ConsoleObserver.prototype.messageAdded):
901         Correctly pass the column number into IssueMessage.
902
903         * UserInterface/Models/LineWidget.js:
904         (WebInspector.LineWidget):
905         (WebInspector.LineWidget.prototype.get codeMirrorLineWidget):
906         (WebInspector.LineWidget.prototype.get widgetElement):
907         Create a new Model class for a LineWidget. The root element
908         should never change, but its children can be updated.
909
910         * UserInterface/Views/SourceCodeTextEditor.css:
911         (.source-code.text-editor .CodeMirror-linewidget):
912         Override styles so that widgets can overlap line content.
913
914         (.source-code.text-editor > .CodeMirror .issue-widget):
915         (.source-code.text-editor > .CodeMirror .issue-widget.inline):
916         Float issue widgets to the right side of the editor.
917
918         (.source-code.text-editor > .CodeMirror .issue-widget > .arrow):
919         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .arrow):
920         Pure CSS arrow for widgets on the same line as their issue.
921
922         (.source-code.text-editor > .CodeMirror .issue-widget > .icon):
923         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-warning):
924         (.source-code.text-editor > .CodeMirror .issue-widget > .icon.icon-error):
925         Issue icon styles for the different issue types.
926
927         (.source-code.text-editor > .CodeMirror .issue-widget.warning):
928         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning):
929         (.source-code.text-editor > .CodeMirror .issue-widget.inline.warning > .arrow):
930         (.source-code.text-editor > .CodeMirror .issue-widget.error):
931         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error):
932         (.source-code.text-editor > .CodeMirror .issue-widget.inline.error > .arrow):
933         Different colors for the different issue types.
934
935         (.source-code.text-editor > .CodeMirror .issue-widget > .text):
936         (.source-code.text-editor > .CodeMirror .issue-widget.inline > .text):
937         Text positioning when on the same line or when expanded.
938
939         * UserInterface/Views/SourceCodeTextEditor.js:
940         (WebInspector.SourceCodeTextEditor.prototype._addIssue):
941         (WebInspector.SourceCodeTextEditor.prototype._iconClassNameForIssueLevel):
942         (WebInspector.SourceCodeTextEditor.prototype._updateIssueWidgetForIssues):
943         (WebInspector.SourceCodeTextEditor.prototype._isWidgetToggleable):
944         (WebInspector.SourceCodeTextEditor.prototype._handleWidgetClick):
945         Create widgets for issues.
946
947         (WebInspector.SourceCodeTextEditor.prototype._contentDidPopulate):
948         (WebInspector.SourceCodeTextEditor.prototype.textEditorUpdatedFormatting):
949         (WebInspector.SourceCodeTextEditor.prototype._clearWidgets):
950         (WebInspector.SourceCodeTextEditor.prototype._reinsertAllIssues):
951         Update all widgets in certain cases.
952
953         * UserInterface/Views/TextEditor.js:
954         (WebInspector.TextEditor.prototype.addStyleClassToLine):
955         This assertion is known to happen for issues added to an editor
956         before the content has loaded.
957
958         (WebInspector.TextEditor.prototype.createWidgetForLine):
959         Create a widget for a line.
960
961 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
962
963         Web Inspector: JS Pretty Printing: "case" or "default" outside of switch causes unbalanced indentation
964         https://bugs.webkit.org/show_bug.cgi?id=142428
965
966         Reviewed by Timothy Hatcher.
967
968         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
969         * UserInterface/Views/CodeMirrorFormatters.js:
970         Fix "case" and "default" indentation rules to only happen inside a switch.
971
972         * Tools/PrettyPrinting/js-tests/switch-case-default-expected.js:
973         * Tools/PrettyPrinting/js-tests/switch-case-default.js:
974         Add tests for "case" and "default" nested inside and outside of switches.
975
976 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
977
978         Web Inspector: ES6: Improved Support for Iterator Objects
979         https://bugs.webkit.org/show_bug.cgi?id=142420
980
981         Reviewed by Timothy Hatcher.
982
983         * UserInterface/Views/ConsoleMessageImpl.js:
984         (WebInspector.ConsoleMessageImpl):
985         Treat an iterator like an object.
986
987         * UserInterface/Views/ObjectPreviewView.js:
988         Output iterator previews with []s, not {}s.
989
990 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
991
992         Web Inspector: Adopt Object Literal Method Property Syntax
993         https://bugs.webkit.org/show_bug.cgi?id=142409
994
995         Reviewed by Timothy Hatcher.
996
997         Mechanical change touching lots of files.
998
999 2015-03-06  Joseph Pecoraro  <pecoraro@apple.com>
1000
1001         Web Inspector: Adopt Object Literal Shorthand Property Construction Syntax
1002         https://bugs.webkit.org/show_bug.cgi?id=142374
1003
1004         Reviewed by Timothy Hatcher.
1005
1006         Mechanical change touching lots of files.
1007
1008 2015-03-06  Jono Wells  <jonowells@apple.com>
1009
1010         Web Inspector: Populate Debugger sidebar with all debuggable resources
1011         https://bugs.webkit.org/show_bug.cgi?id=141232
1012
1013         Reviewed by Timothy Hatcher.
1014
1015         All debuggable resources now show in the debugger sidebar. The _resourceAdded handler now adds a script resource
1016         to the sidebar regardless of whether it has any breakpoints set on it. The new function
1017         _getTreeElementForSourceCodeAndAddToContentTreeOutline adds the element to the debugger sidebar before
1018         _addBreakpointsForSourceCode is called. Removing all breakpoints from a resource no longer removes that
1019         resource from the debugger sidebar. TreeOutline.prototype.removeChild has been updated so the disclosure
1020         button will disappear and reappear correctly when removing/adding breakpoints.
1021
1022         * UserInterface/Views/DebuggerSidebarPanel.js:
1023         (WebInspector.DebuggerSidebarPanel.prototype._addBreakpoint): Expand resource if first breakpoint is added.
1024         (WebInspector.DebuggerSidebarPanel.prototype._getTreeElementForSourceCodeAndAddToContentTreeOutline): Created.
1025         (WebInspector.DebuggerSidebarPanel.prototype._resourceAdded): Checks resource type and adds scripts to sidebar.
1026         (WebInspector.DebuggerSidebarPanel.prototype._mainResourceChanged):
1027         (WebInspector.DebuggerSidebarPanel.prototype._scriptAdded):
1028         (WebInspector.DebuggerSidebarPanel.prototype._removeBreakpointTreeElement): No longer removes empty parent.
1029         (WebInspector.DebuggerSidebarPanel.prototype._treeElementSelected): Displays scripts without breakpoints now.
1030
1031         * UserInterface/Views/GeneralTreeElement.js:
1032         (WebInspector.GeneralTreeElement.prototype.get disclosureButton): Drive-by fix. Unused. Deleted.
1033
1034         * UserInterface/Views/TreeOutline.js:
1035         (TreeOutline.prototype.removeChild):
1036         Remove parent class and set hasChildren to false if necessary to properly hide and reveal disclosure button
1037         for elements whose children have been removed.
1038
1039 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1040
1041         Web Inspector: Follow-up fixes to ObjectTreeBaseTreeElement
1042         https://bugs.webkit.org/show_bug.cgi?id=142367
1043
1044         Reviewed by Timothy Hatcher.
1045
1046         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
1047         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.propertyPathType):
1048         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
1049         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValuePropertyPath):
1050         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
1051
1052 2015-03-05  Tobias Reiss  <tobi+webkit@basecode.de>
1053
1054         Web Inspector: console.debug/info should show up in Log Console Filter
1055         https://bugs.webkit.org/show_bug.cgi?id=142300
1056
1057         Reviewed by Joseph Pecoraro.
1058
1059         Add WebInspector.ConsoleMessage.MessageLevel.Debug case that allows console.debug/info
1060         to show up in Log Console Filter.
1061
1062         * UserInterface/Views/LogContentView.js:
1063         (WebInspector.LogContentView.prototype._filterMessages):
1064
1065 2015-03-05  Joseph Pecoraro  <pecoraro@apple.com>
1066
1067         Web Inspector: Add ObjectTreeBaseTreeElement to share functionality
1068         https://bugs.webkit.org/show_bug.cgi?id=142323
1069
1070         Reviewed by Timothy Hatcher.
1071
1072         By making this change:
1073
1074           - Share lots of duplicated code.
1075           - Array / Set / Map tree elements get context menu support
1076
1077         * UserInterface/Main.html:
1078         * UserInterface/Views/ObjectTreeBaseTreeElement.js: Added.
1079         (WebInspector.ObjectTreeBaseTreeElement):
1080         (WebInspector.ObjectTreeBaseTreeElement.prototype.get property):
1081         (WebInspector.ObjectTreeBaseTreeElement.prototype.get propertyPath):
1082         (WebInspector.ObjectTreeBaseTreeElement.prototype.oncontextmenu):
1083         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValue):
1084         (WebInspector.ObjectTreeBaseTreeElement.prototype.resolvedValuePropertyPath):
1085         (WebInspector.ObjectTreeBaseTreeElement.prototype.thisPropertyPath):
1086         (WebInspector.ObjectTreeBaseTreeElement.prototype.hadError):
1087         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathType):
1088         (WebInspector.ObjectTreeBaseTreeElement.prototype.propertyPathString):
1089         (WebInspector.ObjectTreeBaseTreeElement.prototype.createInteractiveGetterElement):
1090         (WebInspector.ObjectTreeBaseTreeElement.prototype.createReadOnlyIconElement):
1091         New file, copying most of the code from PropertyTreeElement so it can be shared.
1092
1093         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
1094         (WebInspector.ObjectTreeArrayIndexTreeElement):
1095         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.invokedGetter):
1096         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
1097         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property): Deleted.
1098         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue): Deleted.
1099         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType): Deleted.
1100         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1101         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath): Deleted.
1102         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString): Deleted.
1103         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle): Deleted.
1104         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.): Deleted.
1105         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement): Deleted.
1106         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1107         (WebInspector.ObjectTreePropertyTreeElement):
1108         (WebInspector.ObjectTreePropertyTreeElement.prototype.invokedGetter):
1109         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
1110         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
1111         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
1112         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
1113         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
1114         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
1115         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
1116         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
1117         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
1118         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
1119         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
1120         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property): Deleted.
1121         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu): Deleted.
1122         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue): Deleted.
1123         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType): Deleted.
1124         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1125         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath): Deleted.
1126         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon): Deleted.
1127         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.): Deleted.
1128         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement): Deleted.
1129         (WebInspector.ObjectTreePropertyTreeElement.prototype): Deleted.
1130         Subclass ObjectTreeBaseTreeElement and eliminate the code now
1131         automatically handled by the base class.
1132
1133         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js:
1134         (WebInspector.ObjectTreeMapEntryTreeElement):
1135         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.resolvedValue):
1136         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
1137         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString): Deleted.
1138         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js:
1139         (WebInspector.ObjectTreeSetIndexTreeElement):
1140         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.resolvedValue):
1141         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
1142         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath): Deleted.
1143         Override resolved value since these are not about PropertyDescriptors.
1144         This will make context menus work automatically.
1145
1146 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
1147
1148         Web Inspector: Improve display of previews with overflow
1149         https://bugs.webkit.org/show_bug.cgi?id=142321
1150
1151         Reviewed by Timothy Hatcher.
1152
1153         * UserInterface/Views/ObjectPreviewView.js:
1154         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1155         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1156
1157 2015-03-04  Joseph Pecoraro  <pecoraro@apple.com>
1158
1159         Web Inspector: Array/Collection Sizes should be visible and distinct
1160         https://bugs.webkit.org/show_bug.cgi?id=142254
1161
1162         Reviewed by Timothy Hatcher.
1163
1164         * UserInterface/Models/ObjectPreview.js:
1165         (WebInspector.ObjectPreview):
1166         (WebInspector.ObjectPreview.fromPayload):
1167         (WebInspector.ObjectPreview.prototype.get size):
1168         (WebInspector.ObjectPreview.prototype.hasSize):
1169         * UserInterface/Protocol/RemoteObject.js:
1170         (WebInspector.RemoteObject):
1171         (WebInspector.RemoteObject.fromPrimitiveValue):
1172         (WebInspector.RemoteObject.fromPayload):
1173         (WebInspector.RemoteObject.prototype.get size):
1174         (WebInspector.RemoteObject.prototype.hasSize):
1175         Check if this type has a size and get the size.
1176         Gracefully handle construction for legacy protocols.
1177
1178         * UserInterface/Views/ObjectPreviewView.css:
1179         (.object-preview > .size):
1180         * UserInterface/Views/FormattedValue.css:
1181         (:matches(.formatted-array, .formatted-map, .formatted-set, .formatted-weakmap) > .size):
1182         Style the array/collection size.
1183
1184         * UserInterface/Views/ObjectPreviewView.js:
1185         (WebInspector.ObjectPreviewView):
1186         * UserInterface/Views/FormattedValue.js:
1187         (WebInspector.FormattedValue.createElementForTypesAndValue):
1188         (WebInspector.FormattedValue.createElementForRemoteObject):
1189         (WebInspector.FormattedValue.createElementForObjectPreview):
1190         (WebInspector.FormattedValue.createElementForPropertyPreview):
1191         Add an element showing the array/collection size.
1192
1193         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1194         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1195         Remove special handling for Array sizes now that this is handled earlier.
1196
1197         * UserInterface/Controllers/StorageManager.js:
1198         (WebInspector.StorageManager.prototype.processData):
1199         (WebInspector.StorageManager.prototype.requestIndexedDatabaseData):
1200         Fix what looks like broken RemoteObject construction.
1201
1202 2015-03-04  Brian J. Burg  <burg@cs.washington.edu>
1203
1204         Web Inspector: TimelineViews should be displayed in a ContentViewContainer
1205         https://bugs.webkit.org/show_bug.cgi?id=142290
1206
1207         Reviewed by Timothy Hatcher.
1208
1209         TimelineRecordingContentView has a bunch of logic to manage the currently visible TimelineView.
1210         This could be delegated to a ContentViewContainer to simplify the logic. It also opens the possibility
1211         for other views to be displayed beneath the timeline overview graphs when it makes sense to do so.
1212
1213         In order to be displayable in the container, TimelineView and its subclasses have been upgraded to
1214         be ContentView subclasses. This also reduces some code duplication for basic view management.
1215
1216         * UserInterface/Views/ContentView.js:
1217         (WebInspector.ContentView): Move base class instantiation pattern from TimelineView to here.
1218         (WebInspector.ContentView.isViewable):
1219         * UserInterface/Views/LayoutTimelineView.js: Use ContentView events and base methods.
1220         (WebInspector.LayoutTimelineView.prototype.shown):
1221         (WebInspector.LayoutTimelineView.prototype.hidden):
1222         (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
1223         * UserInterface/Views/NetworkTimelineView.js: Use ContentView events and base methods.
1224         (WebInspector.NetworkTimelineView.prototype.shown):
1225         (WebInspector.NetworkTimelineView.prototype.hidden):
1226         (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
1227         * UserInterface/Views/OverviewTimelineView.js: Use ContentView events and base methods.
1228         (WebInspector.OverviewTimelineView.prototype.shown):
1229         (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
1230         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1231         * UserInterface/Views/ScriptTimelineView.js: Use ContentView events and base methods.
1232         (WebInspector.ScriptTimelineView.prototype.shown):
1233         (WebInspector.ScriptTimelineView.prototype.hidden):
1234         (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
1235         * UserInterface/Views/TimelineRecordingContentView.css: Use WebInspector.ContentViewContainer class.
1236         (.content-view.timeline-recording > .content-view-container):
1237         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid td):
1238         (.content-view.timeline-recording > .content-view-container > .timeline-view > .data-grid table.data):
1239         (.content-view.timeline-recording > .view-container): Deleted.
1240         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td): Deleted.
1241         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data): Deleted.
1242
1243         * UserInterface/Views/TimelineRecordingContentView.js:
1244         Many of the changes here mirror the implementation of ClusterContentView. Searching is disabled since
1245         none of the timeline views are currently searchable using ContentViewContainer's full-text search.
1246
1247         In cases where we update the current timeline view, the currentTimelineView accessor returns the
1248         content view if a TimelineView is shown in the content view container, otherwise null.
1249
1250         (WebInspector.TimelineRecordingContentView):
1251         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
1252         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
1253         (WebInspector.TimelineRecordingContentView.prototype.get supplementalRepresentedObjects):
1254         (WebInspector.TimelineRecordingContentView.prototype.get handleCopyEvent):
1255         (WebInspector.TimelineRecordingContentView.prototype.get supportsSave):
1256         (WebInspector.TimelineRecordingContentView.prototype.get saveData):
1257         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
1258         (WebInspector.TimelineRecordingContentView.prototype.shown):
1259         (WebInspector.TimelineRecordingContentView.prototype.hidden):
1260         (WebInspector.TimelineRecordingContentView.prototype.closed):
1261         (WebInspector.TimelineRecordingContentView.prototype.canGoBack):
1262         (WebInspector.TimelineRecordingContentView.prototype.canGoForward):
1263         (WebInspector.TimelineRecordingContentView.prototype.goBack):
1264         (WebInspector.TimelineRecordingContentView.prototype.goForward):
1265         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
1266         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
1267         (WebInspector.TimelineRecordingContentView.prototype.get filterDidChange):
1268         (WebInspector.TimelineRecordingContentView.prototype._currentContentViewDidChange):
1269         (WebInspector.TimelineRecordingContentView.prototype._contentViewSelectionPathComponentDidChange):
1270         (WebInspector.TimelineRecordingContentView.prototype._contentViewSupplementalRepresentedObjectsDidChange):
1271         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
1272         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
1273         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
1274         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
1275         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange): Deleted.
1276         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange): Deleted.
1277         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView): Deleted.
1278         * UserInterface/Views/TimelineView.js: Remove duplicated functionality and use ContentView equivalents instead.
1279         (WebInspector.TimelineView):
1280         (WebInspector.TimelineView.prototype.filterUpdated):
1281         (WebInspector.TimelineView.prototype.needsLayout):
1282         (WebInspector.TimelineView.prototype.get representedObject): Deleted.
1283         (WebInspector.TimelineView.prototype.get visible): Deleted.
1284         (WebInspector.TimelineView.prototype.shown): Deleted.
1285         (WebInspector.TimelineView.prototype.hidden): Deleted.
1286
1287 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1288
1289         Web Inspector: selecting overview timeline tree elements without source locations doesn't update selection components
1290         https://bugs.webkit.org/show_bug.cgi?id=142248
1291
1292         Reviewed by Timothy Hatcher.
1293
1294         Add a missing event dispatch to trigger recalculation of path components when showing the overview timeline view.
1295
1296         * UserInterface/Views/OverviewTimelineView.js:
1297         (WebInspector.OverviewTimelineView.prototype._treeElementSelected):
1298
1299 2015-03-03  Nikita Vasilyev  <nvasilyev@apple.com>
1300
1301         Web Inspector: Refactoring: separate ConsoleSession from ConsoleGroup
1302         https://bugs.webkit.org/show_bug.cgi?id=142141
1303
1304         ConsoleSession doesn't have a title and it's not collapsible either.
1305         Simplify ConsoleSession by removing excessive markup.
1306
1307         Reviewed by Timothy Hatcher.
1308
1309         * UserInterface/Controllers/JavaScriptLogViewController.js:
1310         (WebInspector.JavaScriptLogViewController):
1311         (WebInspector.JavaScriptLogViewController.prototype.startNewSession):
1312         (WebInspector.JavaScriptLogViewController.prototype._appendConsoleMessage):
1313         (WebInspector.JavaScriptLogViewController.prototype.get topConsoleGroup): Deleted.
1314         * UserInterface/Main.html:
1315         * UserInterface/Views/ConsoleGroup.js:
1316         (WebInspector.ConsoleGroup):
1317         (WebInspector.ConsoleGroup.prototype.render):
1318         (WebInspector.ConsoleGroup.prototype.addMessage):
1319         (WebInspector.ConsoleGroup.prototype.append):
1320         (WebInspector.ConsoleGroup.prototype.hasMessages): Deleted.
1321         * UserInterface/Views/ConsoleSession.js: Added.
1322         (WebInspector.ConsoleSession):
1323         (WebInspector.ConsoleSession.prototype.addMessage):
1324         (WebInspector.ConsoleSession.prototype.append):
1325         (WebInspector.ConsoleSession.prototype.hasMessages):
1326         * UserInterface/Views/LogContentView.css:
1327         (.console-session + .console-session):
1328         (.console-group.new-session .console-group-messages .console-item:first-child): Deleted.
1329         (.console-group.new-session): Deleted.
1330
1331 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1332
1333         Web Inspector: popover should use requestAnimationFrame to drive move/resize animations
1334         https://bugs.webkit.org/show_bug.cgi?id=142218
1335
1336         Reviewed by Timothy Hatcher.
1337
1338         Remove setTimeout workaround now that Inspector runs in its own process.
1339
1340         * UserInterface/Views/Popover.js:
1341         (WebInspector.Popover.prototype.drawBackground):
1342         (WebInspector.Popover.prototype._animateFrame):
1343
1344 2015-03-03  Brian J. Burg  <burg@cs.washington.edu>
1345
1346         Web Inspector: Console log level selector loses selection on reload
1347         https://bugs.webkit.org/show_bug.cgi?id=142199
1348
1349         Reviewed by Timothy Hatcher.
1350
1351         The selected items in the console scope bar were being saved as settings,
1352         but the "All" scope is forcibly selected on reload due to a logic bug.
1353
1354         * UserInterface/Base/Main.js:
1355         (WebInspector.showFullHeightConsole):
1356         The scope bar may already have selected items restored from WebInspector.Settings.
1357         Don't select a scope unless explicitly requested (i.e., clicking on dashboard buttons)
1358         or if no scopes are selected at all. (In the latter case, "All" is the default scope.)
1359
1360         * UserInterface/Views/LogContentView.js:
1361         (WebInspector.LogContentView): Don't specify a default value here to avoid trampling
1362         settings. The "All" scope is selected by default in showFullHeightConsole if
1363         nothing else is selected.
1364
1365 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1366
1367         Web Inspector: Remove native extensions now built-in
1368         https://bugs.webkit.org/show_bug.cgi?id=142203
1369
1370         Reviewed by Timothy Hatcher.
1371
1372         * UserInterface/Base/Utilities.js:
1373
1374 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1375
1376         Web Inspector: Context Menu to Log a Particular Object
1377         https://bugs.webkit.org/show_bug.cgi?id=142198
1378
1379         Reviewed by Timothy Hatcher.
1380
1381         * UserInterface/Controllers/JavaScriptLogViewController.js:
1382         (WebInspector.JavaScriptLogViewController.prototype.saveResultCallback):
1383         (WebInspector.JavaScriptLogViewController.prototype.appendImmediateExecutionWithResult):
1384         Add a way to show an execution and result immediately in the Log View.
1385
1386         * UserInterface/Views/ConsolePrompt.js:
1387         (WebInspector.ConsolePrompt.prototype.pushHistoryItem):
1388         (WebInspector.ConsolePrompt.prototype.commitTextOrInsertNewLine):
1389         (WebInspector.ConsolePrompt.prototype._handleEnterKey):
1390         (WebInspector.ConsolePrompt.prototype._commitHistoryEntry):
1391         Add a way to append a history item to the console prompt history.
1392
1393         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1394         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1395         Add a context menu item to object tree properties to log the value.
1396
1397         * UserInterface/Protocol/RemoteObject.js:
1398         (WebInspector.RemoteObject.createCallArgument):
1399         (WebInspector.RemoteObject.prototype.callFunction):
1400         (WebInspector.RemoteObject.prototype.asCallArgument):
1401         Simplify CallArgument creation.
1402
1403         * UserInterface/Controllers/RuntimeManager.js:
1404         (WebInspector.RuntimeManager.prototype.mycallback):
1405         (WebInspector.RuntimeManager.prototype.saveResult):
1406         Wrap RuntimeAgent.saveResult. If supported, run the backend command
1407         and fetch a saved result index from the backend for the given value.
1408
1409         * Localizations/en.lproj/localizedStrings.js:
1410         * UserInterface/Base/Main.js:
1411         (WebInspector.contentLoaded):
1412         * UserInterface/Views/LogContentView.js:
1413         (WebInspector.LogContentView.prototype.get logViewController):
1414         Misc.
1415
1416 2015-03-02  Joseph Pecoraro  <pecoraro@apple.com>
1417
1418         Web Inspector: Add Context Menus to Object Tree properties
1419         https://bugs.webkit.org/show_bug.cgi?id=142125
1420
1421         Reviewed by Timothy Hatcher.
1422
1423         * Localizations/en.lproj/localizedStrings.js:
1424         * UserInterface/Views/ObjectPropertiesSection.js:
1425         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired):
1426         (WebInspector.ObjectPropertyTreeElement.prototype._functionContextMenuEventFired.revealFunction):
1427         Fix legacy implementation.
1428
1429         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js:
1430         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1431         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
1432         Give prototype buttons a tooltip.
1433
1434         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncontextmenu):
1435         (WebInspector.ObjectTreePropertyTreeElement.prototype._contextMenuHandler):
1436         (WebInspector.ObjectTreePropertyTreeElement.prototype._appendMenusItemsForObject):
1437         Context Menus based on the selected object.
1438
1439 2015-02-27  Joseph Pecoraro  <pecoraro@apple.com>
1440
1441         Web Inspector: Use Maps in ResourceCollection instead of objects
1442         https://bugs.webkit.org/show_bug.cgi?id=142101
1443
1444         Reviewed by Timothy Hatcher.
1445
1446         * UserInterface/Models/ResourceCollection.js:
1447         (WebInspector.ResourceCollection):
1448         (WebInspector.ResourceCollection.prototype.resourcesWithType):
1449         (WebInspector.ResourceCollection.prototype.removeAllResources):
1450         (WebInspector.ResourceCollection.prototype.resourceForURL):
1451         (WebInspector.ResourceCollection.prototype._associateWithResource):
1452         (WebInspector.ResourceCollection.prototype._disassociateWithResource):
1453         (WebInspector.ResourceCollection.prototype._resourceURLDidChange):
1454         (WebInspector.ResourceCollection.prototype._resourceTypeDidChange):
1455         Use Maps instead of objects.
1456
1457 2015-02-26  Nikita Vasilyev  <nvasilyev@apple.com>
1458
1459         Web Inspector: Add a subtle blue background for selected console messages
1460         https://bugs.webkit.org/show_bug.cgi?id=142073
1461
1462         Reviewed by Timothy Hatcher.
1463
1464         * UserInterface/Views/LogContentView.css:
1465         (.console-item.selected::after):
1466         (.console-messages:focus .console-item.selected):
1467         (.console-messages:focus .console-item.selected + .console-item):
1468         (.console-error-level + .console-item):
1469         (.console-error-level .section .header .title):
1470         (.console-warning-level):
1471         (.console-warning-level + .console-item):
1472
1473 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1474
1475         Web Inspector: Colored console messages apply text color to object tree properties
1476         https://bugs.webkit.org/show_bug.cgi?id=142051
1477
1478         Reviewed by Timothy Hatcher.
1479
1480         * UserInterface/Views/ObjectPreviewView.css:
1481         (.object-preview):
1482         * UserInterface/Views/ObjectTreeView.css:
1483         (.object-tree):
1484         Default the color to black within Object Tree and Object Preview views.
1485
1486 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1487
1488         Web Inspector: Clear Log on Reload clears some logs that were after reload
1489         https://bugs.webkit.org/show_bug.cgi?id=142070
1490
1491         Reviewed by Timothy Hatcher.
1492
1493         * UserInterface/Views/LogContentView.js:
1494         (WebInspector.LogContentView.prototype._sessionStarted):
1495         We can bail after calling clearLog, since that will already start
1496         a new session for us.
1497
1498         (WebInspector.LogContentView.prototype._clearLog):
1499         Don't trigger a backend clear messages, since that will cause us to
1500         clear messages received between the request and response.
1501
1502 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1503
1504         Web Inspector: Save Console Evaluations into Command Line variables $1-$99 ($n)
1505         https://bugs.webkit.org/show_bug.cgi?id=142061
1506
1507         Reviewed by Timothy Hatcher.
1508
1509         * UserInterface/Controllers/RuntimeManager.js:
1510         (WebInspector.RuntimeManager.prototype.evalCallback):
1511         (WebInspector.RuntimeManager.prototype.evaluateInInspectedWindow):
1512         Add a saveResult parameter for the new protocol command in parameter.
1513
1514         * UserInterface/Views/ConsoleMessageImpl.js:
1515         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
1516         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1517         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1518         (WebInspector.ConsoleMessageImpl.prototype._rootPropertyPathForObject):
1519         * UserInterface/Views/ObjectTreeView.js:
1520         (WebInspector.ObjectTreeView.prototype.appendTitleSuffix):
1521         For console evaluation results, show a "= $n" when the evaluation was
1522         given a saved result index.
1523
1524         * UserInterface/Views/LogContentView.css:
1525         (.console-saved-variable):
1526         * UserInterface/Views/ObjectPreviewView.css:
1527         (.object-preview-name):
1528         Make $n and class names in previews always non-italics.
1529
1530         * UserInterface/Controllers/JavaScriptLogViewController.js:
1531         (WebInspector.JavaScriptLogViewController.prototype.printResult):
1532         (WebInspector.JavaScriptLogViewController.prototype.consolePromptTextCommitted):
1533         * UserInterface/Controllers/JavaScriptRuntimeCompletionProvider.js:
1534         (get WebInspector.JavaScriptRuntimeCompletionProvider.prototype.):
1535         * UserInterface/Controllers/LogManager.js:
1536         (WebInspector.LogManager.prototype.messagesCleared):
1537         (WebInspector.LogManager.prototype._mainResourceDidChange):
1538         Try to provide better autocompletion for $n, by populating autocompletion menus
1539         from $1-$n where n is the maximum saved result index seen. Clear the maximum
1540         when we clear the console.
1541
1542         * UserInterface/Views/ConsoleCommandResult.js:
1543         (WebInspector.ConsoleCommandResult):
1544         (WebInspector.ConsoleCommandResult.clearMaximumSavedResultIndex):
1545         Keep track of the maximum savedResultIndex for console evaluation results.
1546
1547 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1548
1549         Web Inspector: Set/Map appear as lossless when they have lossy entries
1550         https://bugs.webkit.org/show_bug.cgi?id=142050
1551
1552         Reviewed by Timothy Hatcher.
1553
1554         * UserInterface/Views/ObjectPreviewView.js:
1555         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
1556         Take into account the lossless states of entry keys and values.
1557
1558 2015-02-26  Joseph Pecoraro  <pecoraro@apple.com>
1559
1560         Web Inspector: New ObjectTree UI for Arrays / Maps / Sets
1561         https://bugs.webkit.org/show_bug.cgi?id=142037
1562
1563         Reviewed by Timothy Hatcher.
1564
1565         * Localizations/en.lproj/localizedStrings.js:
1566         * UserInterface/Main.html:
1567         Miscellaneous changes.
1568
1569         * UserInterface/Models/PropertyDescriptor.js:
1570         (WebInspector.PropertyDescriptor.prototype.isIndexProperty):
1571         Useful for quickly checking if this property is numeric and possibly
1572         an array index.
1573
1574         * UserInterface/Models/PropertyPath.js:
1575         (WebInspector.PropertyPath.prototype.appendMapKey):
1576         (WebInspector.PropertyPath.prototype.appendMapValue):
1577         (WebInspector.PropertyPath.prototype.appendSetIndex):
1578         Be specific about property paths into maps / sets. Note that a map
1579         value may be displayable if the key is simple.
1580
1581         * UserInterface/Protocol/RemoteObject.js:
1582         (WebInspector.RemoteObject.prototype.hasValue):
1583         A simple value RemoteObject may have the value "undefined". So provide
1584         a falsey proof helper that actually checks if we have a value.
1585
1586         (WebInspector.RemoteObject.prototype.isArray):
1587         (WebInspector.RemoteObject.prototype.backendGetOwnPropertyDescriptor):
1588         (WebInspector.RemoteObject.prototype.wrappedCallback):
1589         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptor):
1590         Currently backend APIs exist only to get all properties. In the case
1591         of collections, we often want to get only one property (__proto__).
1592         This is a simple implementation on top of callFunctionOn.
1593
1594         * UserInterface/Views/ConsoleMessageImpl.js:
1595         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
1596         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1597         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined): Deleted.
1598         (WebInspector.ConsoleMessageImpl.prototype._printArray): Deleted.
1599         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry): Deleted.
1600         Simplify array formatted to just use an ObjectTreeView. Add fixmes
1601         that we should seed the ObjectTreeView with a starting property path.
1602
1603         * UserInterface/Views/FormattedValue.css:
1604         (.formatted-node > ol):
1605         Sometimes, a node's display was getting overridden by various console styles.
1606         Force a node to always display block. We may be able to remove this later.
1607
1608         * UserInterface/Views/FormattedValue.js:
1609         (WebInspector.FormattedValue.createObjectTreeOrFormattedValueForRemoteObject):
1610         Helper for formatting a node / object / value more easily. This
1611         is used by all collection types.
1612
1613         * UserInterface/Views/ObjectPreviewView.js:
1614         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1615         We lost the nice sparse array support when switching to the new preview path,
1616         we should add it back.
1617
1618         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.css:
1619         (.object-tree-array-index):
1620         (.object-tree-array-index > .titles):
1621         (.object-tree-array-index > .icon):
1622         (.object-tree-array-index .index-name):
1623         (.object-tree-array-index .index-value .object-tree):
1624         (.object-tree-array-index .index-value .object-tree .object-tree-outline):
1625         (.object-tree-property + ol .object-tree-array-index):
1626         New styles specific to array index tree elements.
1627
1628         * UserInterface/Views/ObjectTreeMapEntryTreeElement.css:
1629         (.object-tree-array-index.object-tree-map-entry > .titles > .title > .index-name):
1630         (.object-tree-map-entry.key):
1631         (.object-tree-map-entry.key:first-of-type):
1632         (.object-tree-map-entry):
1633         New styles specific to map key/value tree elements.
1634
1635         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Removed.
1636         Remove old collection implementation.
1637
1638         * UserInterface/Views/ObjectTreeArrayIndexTreeElement.js: Added.
1639         (WebInspector.ObjectTreeArrayIndexTreeElement):
1640         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype.get property):
1641         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValue):
1642         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathType):
1643         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._resolvedValuePropertyPath):
1644         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._thisPropertyPath):
1645         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._propertyPathString):
1646         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._updateTitle):
1647         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._titleFragment):
1648         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createInteractiveGetterElement.):
1649         (WebInspector.ObjectTreeArrayIndexTreeElement.prototype._createReadOnlyIconElement):
1650         Index followed by formatted value. Unfortunately a page can hack up an array
1651         with getter properties, so also support getter values in an array. This ends
1652         up copying a lot of ObjectTreePropertyTreeElement as a result.
1653
1654         * UserInterface/Views/ObjectTreeMapEntryTreeElement.js: Added.
1655         (WebInspector.ObjectTreeMapEntryTreeElement):
1656         (WebInspector.ObjectTreeMapEntryTreeElement.prototype.get object):
1657         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._propertyPathString):
1658         (WebInspector.ObjectTreeMapEntryTreeElement.prototype._titleFragment):
1659         (WebInspector.ObjectTreeMapKeyTreeElement):
1660         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.displayPropertyName):
1661         (WebInspector.ObjectTreeMapKeyTreeElement.prototype.resolvedValuePropertyPath):
1662         (WebInspector.ObjectTreeMapValueTreeElement):
1663         (WebInspector.ObjectTreeMapValueTreeElement.prototype.displayPropertyName):
1664         (WebInspector.ObjectTreeMapValueTreeElement.prototype.resolvedValuePropertyPath):
1665         Key/value followed by formatted value.
1666
1667         * UserInterface/Views/ObjectTreeSetIndexTreeElement.js: Added.
1668         (WebInspector.ObjectTreeSetIndexTreeElement):
1669         (WebInspector.ObjectTreeSetIndexTreeElement.prototype.get object):
1670         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._resolvedValuePropertyPath):
1671         (WebInspector.ObjectTreeSetIndexTreeElement.prototype._titleFragment):
1672         Dot followed by formatted value.
1673
1674         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
1675         (.object-tree-property > .titles):
1676         Reformat.
1677
1678         * UserInterface/Views/ObjectTreeView.css:
1679         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
1680         Upgrade generic styles.
1681
1682         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1683         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
1684         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
1685         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildren):
1686         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateChildrenInternal):
1687         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateEntries):
1688         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateProperties):
1689         * UserInterface/Views/ObjectTreeView.js:
1690         (WebInspector.ObjectTreeView):
1691         (WebInspector.ObjectTreeView.emptyMessageElement):
1692         (WebInspector.ObjectTreeView.prototype.expand):
1693         (WebInspector.ObjectTreeView.prototype.collapse):
1694         (WebInspector.ObjectTreeView.prototype.update):
1695         (WebInspector.ObjectTreeView.prototype._updateChildren):
1696         (WebInspector.ObjectTreeView.prototype._updateEntries):
1697         (WebInspector.ObjectTreeView.prototype._updateProperties):
1698         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
1699         Both ObjectTreeView and ObjectTreePropertyTreeElement will fetch only collection
1700         entries or properties depending on the type of the object being expanded.
1701
1702         (WebInspector.ObjectTreeView.prototype._trackWeakEntries):
1703         (WebInspector.ObjectTreeView.prototype._untrackWeakEntries):
1704         Allow WeakMap entries to be Garbage Collected when the ObjectTreeView
1705         collapses or the console is cleared. FIXME for handling sub-tree WeakMaps.
1706
1707 2015-02-26  Brent Fulgham  <bfulgham@apple.com>
1708
1709         [Win] Make build logs more legible by reducing noise
1710         https://bugs.webkit.org/show_bug.cgi?id=142034
1711
1712         Reviewed by Alexey Proskuryakov.
1713
1714         Modify batch files, makefiles, and DOS commands to remove
1715         uninteresting/unhelpful output.
1716
1717         * WebInspectorUI.vcxproj/WebInspectorUI.make:
1718
1719 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
1720
1721         Web Inspector: Improve Regex/Error output in Object Tree and Previews
1722         https://bugs.webkit.org/show_bug.cgi?id=142010
1723
1724         Reviewed by Timothy Hatcher.
1725
1726         * UserInterface/Views/ObjectPreviewView.js:
1727         (WebInspector.ObjectPreviewView):
1728         (WebInspector.ObjectPreviewView.prototype._initTitleElement):
1729         Since some object types may be formatted as simple values, ensure they get
1730         the formatted style even in the title view.
1731
1732         (WebInspector.ObjectPreviewView.prototype._appendPreview):
1733         Those object types that can be formatted as simple values should skip
1734         to the value formatting phase.
1735
1736         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
1737         Do not show property previews for error objects. Always assume lossy
1738         so that it can be expanded.
1739
1740         * UserInterface/Views/ObjectTreeView.js:
1741         (WebInspector.ObjectTreeView):
1742         Make a similiar improvement for ObjectTree titles when previews are
1743         unavailable. This will make dir(value) show a stylized value in the
1744         title of the Object Tree.
1745
1746 2015-02-25  Joseph Pecoraro  <pecoraro@apple.com>
1747
1748         Web Inspector: Improve PropertyPath display strings for getters / values
1749         https://bugs.webkit.org/show_bug.cgi?id=142008
1750
1751         Reviewed by Timothy Hatcher.
1752
1753         * UserInterface/Base/Utilities.js:
1754         (doubleQuotedString):
1755         Helper to double quote a string and escape double quotes with-in it.
1756
1757         * UserInterface/Models/PropertyPath.js:
1758         (WebInspector.PropertyPath.prototype.get reducedPath):
1759         Compute the path eliminating unnecessary __proto__s. Note we don't
1760         property handle the case where a .__proto__.x is override earlier
1761         by a .x, but that case is rare.
1762
1763         (WebInspector.PropertyPath.prototype.displayPath):
1764         Helper for choosing fullPath or reducedPath display strings.
1765
1766         (WebInspector.PropertyPath.prototype.appendPropertyName):
1767         (WebInspector.PropertyPath.prototype.appendGetterPropertyName):
1768         (WebInspector.PropertyPath.prototype.appendSetterPropertyName):
1769         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
1770         When appending a descriptor, specify if it is for a getter/setter or value.
1771         For getters / setters the actual function can be directly fetched via
1772         __lookupGetter__/__lookupSetter__. Continue to use the property name for values.
1773
1774         * UserInterface/Views/FormattedValue.js:
1775         (WebInspector.FormattedValue.createElementForTypesAndValue):
1776
1777         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1778         (WebInspector.ObjectTreePropertyTreeElement.prototype._propertyPathType):
1779         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
1780         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
1781         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1782
1783 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1784
1785         Web Inspector: Eliminate console-formatted-* class names in favor of formatted-*
1786         https://bugs.webkit.org/show_bug.cgi?id=141948
1787
1788         Reviewed by Timothy Hatcher.
1789
1790         * UserInterface/Views/FormattedValue.js:
1791         (WebInspector.FormattedValue.createElementForNode):
1792         Helper for formatting a node as a DOMTreeOutline.
1793
1794         * UserInterface/Views/ConsoleMessageImpl.js:
1795         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
1796         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
1797         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
1798         (WebInspector.ConsoleMessageImpl.prototype.appendUndefined):
1799         (WebInspector.ConsoleMessageImpl.prototype._printArray):
1800         (WebInspector.ConsoleMessageImpl.prototype.): Deleted.
1801         * UserInterface/Views/LogContentView.css:
1802         (.console-user-command-result):
1803         (.console-formatted-object): Deleted.
1804         (.console-object-preview): Deleted.
1805         (.expanded .console-object-preview): Deleted.
1806         (.console-object-preview .name): Deleted.
1807         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
1808         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
1809         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
1810         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
1811         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap): Deleted.
1812         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .section): Deleted.
1813
1814         * UserInterface/Views/LogContentView.js:
1815         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
1816         (WebInspector.LogContentView.prototype._rightArrowWasPressed):
1817         Add FIXMEs since this will no longer work with ObjectTree.
1818
1819         * UserInterface/Views/ObjectPreviewView.css:
1820         (.object-preview):
1821         * UserInterface/Views/ObjectTreeView.css:
1822         (.object-tree):
1823         Copy over the font styles from console-formatted-object.
1824
1825         * UserInterface/Views/ObjectPropertiesSection.js:
1826         (WebInspector.ObjectPropertyTreeElement.prototype.update):
1827         * UserInterface/Views/SourceCodeTextEditor.js:
1828         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction.didGetDetails):
1829         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForFunction):
1830         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForString):
1831         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForRegExp):
1832         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNumber):
1833         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForBoolean):
1834         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForNull):
1835         (WebInspector.SourceCodeTextEditor.prototype._showPopoverForUndefined):
1836         Convert to formatted value class names.
1837
1838 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1839
1840         Web Inspector: Make Getter/Setter RemoteObject property and ObjectPreview handling consistent
1841         https://bugs.webkit.org/show_bug.cgi?id=141587
1842
1843         Reviewed by Timothy Hatcher.
1844
1845         * UserInterface/Models/CallFrame.js:
1846         (WebInspector.CallFrame.prototype.collectScopeChainVariableNames):
1847         * UserInterface/Models/PropertyDescriptor.js:
1848         (WebInspector.PropertyDescriptor.prototype.get nativeGetter):
1849         * UserInterface/Protocol/RemoteObject.js:
1850         (WebInspector.RemoteObject.fromPayload):
1851         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
1852         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
1853         (WebInspector.RemoteObject.prototype.getDisplayablePropertyDescriptors):
1854         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
1855         (WebInspector.RemoteObject.prototype.if):
1856         (WebInspector.RemoteObject.prototype.deprecatedGetOwnProperties):
1857         (WebInspector.RemoteObject.prototype.deprecatedGetAllProperties):
1858         (WebInspector.RemoteObject.prototype._deprecatedGetProperties):
1859         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors): Deleted.
1860         (WebInspector.RemoteObject.prototype.callback): Deleted.
1861         (WebInspector.RemoteObject.prototype.getOwnProperties): Deleted.
1862         (WebInspector.RemoteObject.prototype.getOwnAndGetterProperties): Deleted.
1863         (WebInspector.RemoteObject.prototype.getAllProperties): Deleted.
1864         (WebInspector.RemoteObject.prototype.set else): Deleted.
1865         * UserInterface/Views/ConsoleMessageImpl.js:
1866         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsArray):
1867         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
1868         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
1869         * UserInterface/Views/ObjectPropertiesSection.js:
1870         (WebInspector.ObjectPropertiesSection.prototype.update):
1871         (WebInspector.ObjectPropertyTreeElement.prototype.onpopulate):
1872         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1873         (WebInspector.ObjectTreePropertyTreeElement.prototype.):
1874         (WebInspector.ObjectTreePropertyTreeElement.prototype):
1875         * UserInterface/Views/ObjectTreeView.js:
1876         (WebInspector.ObjectTreeView.prototype.update):
1877
1878 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
1879
1880         Web Inspector: New Object Tree View UI
1881         https://bugs.webkit.org/show_bug.cgi?id=141932
1882
1883         Reviewed by Timothy Hatcher.
1884
1885         Part 1: Majority of the UI.
1886
1887         * Localizations/en.lproj/localizedStrings.js:
1888         * UserInterface/Images/Eye.svg: Added.
1889         * UserInterface/Images/TypeBoolean.svg: Added.
1890         * UserInterface/Images/TypeNull.svg: Added.
1891         * UserInterface/Images/TypeNumber.svg: Added.
1892         * UserInterface/Images/TypeObject.svg: Added.
1893         * UserInterface/Images/TypeRegex.svg: Added.
1894         * UserInterface/Images/TypeString.svg: Added.
1895         * UserInterface/Images/TypeSymbol.svg: Added.
1896         * UserInterface/Images/TypeUndefined.svg: Added.
1897         * UserInterface/Main.html:
1898         Miscellaneous.
1899
1900         * UserInterface/Views/FormattedValue.css:
1901         (.formatted-boolean):
1902         Give booleans a light purple color.
1903
1904         * UserInterface/Views/FormattedValue.js:
1905         (WebInspector.FormattedValue.createElementForTypesAndValue):
1906         Previously we were truncating function value logging in the console. E.g.
1907           js> multiLineFunction
1908           <-  function multiLineFunction() {
1909         No longer truncate so we display the full string.
1910
1911         * UserInterface/Models/PropertyPath.js: Added.
1912         (WebInspector.PropertyPath):
1913         (WebInspector.PropertyPath.prototype.get object):
1914         (WebInspector.PropertyPath.prototype.get parent):
1915         (WebInspector.PropertyPath.prototype.get isPrototype):
1916         (WebInspector.PropertyPath.prototype.get rootObject):
1917         (WebInspector.PropertyPath.prototype.get lastNonPrototypeObject):
1918         (WebInspector.PropertyPath.prototype.get pathComponent):
1919         (WebInspector.PropertyPath.prototype.get fullPath):
1920         (WebInspector.PropertyPath.prototype.isRoot):
1921         (WebInspector.PropertyPath.prototype.isPathComponentImpossible):
1922         (WebInspector.PropertyPath.prototype.isFullPathImpossible):
1923         (WebInspector.PropertyPath.prototype.appendPropertyName):
1924         (WebInspector.PropertyPath.prototype.appendPropertySymbol):
1925         (WebInspector.PropertyPath.prototype.appendInternalPropertyName):
1926         (WebInspector.PropertyPath.prototype.appendArrayIndex):
1927         (WebInspector.PropertyPath.prototype.appendCollectionIndex):
1928         (WebInspector.PropertyPath.prototype.appendPropertyDescriptor):
1929         (WebInspector.PropertyPath.prototype._canPropertyNameBeDotAccess):
1930         PropertyPaths are a linked list of remote object / patch component pairs.
1931         For a property like "foo['property 1'].__proto__.baz" we will have a PropertyPath
1932         chain with the RemoteObject for each component. This allows us to accurately
1933         select the RemoteObject on which we should invoke a getter. It also allows
1934         us to display the property path string from the root object, if possible.
1935
1936         * UserInterface/Protocol/RemoteObject.js:
1937         (WebInspector.RemoteObject.prototype.callFunction):
1938         (WebInspector.RemoteObject.prototype.backendInvokeGetter):
1939         (WebInspector.RemoteObject.prototype.invokeGetter):
1940         Provide a way to invoke a getter function on a remote object if we
1941         have a reference to the getter function. At the same time, improve
1942         the mostly unused callFunction API to automatically convert
1943         RemoteObjects / values to their Runtime.CallArgument format.
1944
1945         * UserInterface/Views/ObjectTreePropertyTreeElement.css: Added.
1946         (.object-tree-property):
1947         (.object-tree-property > .disclosure-button):
1948         (.object-tree-property.parent > .disclosure-button):
1949         (.object-tree-property.parent.expanded > .disclosure-button):
1950         (.object-tree-property > .titles):
1951         Focused styles for the ObjectTree property GeneralTreeElements.
1952         Reuse navigation sidebar disclosure-triangles.
1953
1954         (.object-tree-property > .icon):
1955         (.object-tree-property.boolean > .icon):
1956         (.object-tree-property.function > .icon):
1957         (.object-tree-property.number > .icon):
1958         (.object-tree-property.object > .icon):
1959         (.object-tree-property.object.null > .icon):
1960         (.object-tree-property.object.node > .icon):
1961         (.object-tree-property.regex > .icon):
1962         (.object-tree-property.string > .icon):
1963         (.object-tree-property.symbol > .icon):
1964         (.object-tree-property.undefined > .icon):
1965         Use different icons for different object types. Special case
1966         "accessor" to be undefined.
1967
1968         (.object-tree-property .prototype-name):
1969         (.object-tree-property .property-name.not-enumerable):
1970         Style property names in sans-serif font.
1971         Give non-enumerable properties a slightly transparent look.
1972
1973         (.object-tree-property.prototype-property):
1974         (.object-tree-property.prototype-property > .icon):
1975         (.object-tree-property.prototype-property + ol):
1976         Special styles for prototype properties and their children.
1977
1978         (.object-tree-property .getter):
1979         (.object-tree-property .getter:hover):
1980         (.object-tree-property .read-only):
1981         Styles for clickable getter button and non-interactive read-only indicator.
1982
1983         (.object-tree-property :matches(.formatted-string, .formatted-regexp)):
1984         Do not allow wrapping for values that previously allowed wrapping.
1985
1986         (.object-tree-property .value.error):
1987         If getting a value resulted in an error, display that error in red.
1988
1989         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
1990         (WebInspector.ObjectTreePropertyTreeElement):
1991         Extend from GeneralTreeElement and set up class names on the root <li> object.
1992
1993         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach): Deleted.
1994         No longer needed by using GeneralTreeElement.
1995
1996         (WebInspector.ObjectTreePropertyTreeElement.prototype.onexpand):
1997         (WebInspector.ObjectTreePropertyTreeElement.prototype.oncollapse):
1998         Expand / collapse an associated ObjectPreview if we have one.
1999
2000         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValue):
2001         (WebInspector.ObjectTreePropertyTreeElement.prototype._resolvedValuePropertyPath):
2002         This PropertyTreeElement may be displaying for a value, or a getter that has
2003         gotten a value. Refer to this as the "resolvedValue".
2004
2005         (WebInspector.ObjectTreePropertyTreeElement.prototype._thisPropertyPath):
2006         A PropertyPath leaf used for tooltips.
2007
2008         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
2009         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTooltips):
2010         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
2011         Helpers for updating small parts of the UI. When a getter is invoked,
2012         we need to update the entire UI of this TreeElement.
2013
2014         (WebInspector.ObjectTreePropertyTreeElement.prototype._titleFragment):
2015         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle): Deleted.
2016         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle): Deleted.
2017         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle): Deleted.
2018         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePrototype):
2019         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
2020         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitleAPIStyle):
2021         Create the UI for the mainTitle of this PropertyTreeElement.
2022         
2023         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement):
2024         (WebInspector.ObjectTreePropertyTreeElement.prototype._createReadOnlyIconElement):
2025         Helpers for creating the small components of the title UI.
2026
2027         (WebInspector.ObjectTreePropertyTreeElement.prototype._alwaysDisplayAsProperty):
2028         Establish when a property should still be displayed as a "property" even when in API mode.
2029         For example a value property on a prototype, should still display as an expandable property.
2030
2031         * UserInterface/Views/ObjectTreeView.css:
2032         (.object-tree > :matches(.title, .object-preview)::before):
2033         (.object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
2034         (.object-tree.expanded > :matches(.title, .object-preview)::before):
2035         (.object-tree .object-tree-outline):
2036         (.object-tree-outline ol):
2037         (.object-tree-outline li .empty-message):
2038         (:matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
2039         (.object-tree > .title): Deleted.
2040         (.object-tree-outline): Deleted.
2041         (.object-tree-outline li): Deleted.
2042         (.object-tree-outline li.parent): Deleted.
2043         (.object-tree-outline li.parent::before): Deleted.
2044         (.object-tree-outline li.parent.expanded::before): Deleted.
2045         (.object-tree-property .name): Deleted.
2046         (.object-tree-property .name.not-enumerable): Deleted.
2047         (.object-tree-property .value.error): Deleted.
2048         (.console-group-messages .object-tree:not(.lossless-preview)): Deleted.
2049         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)): Deleted.
2050         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before): Deleted.
2051         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree): Deleted.
2052         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline): Deleted.
2053         Move most PropertyTreeElement specific styles into ObjectPropertyTreeElement.css.
2054         Plenty of console specific files were eliminated.
2055
2056         * UserInterface/Views/ObjectTreeView.js:
2057         (WebInspector.ObjectTreeView.prototype.update):
2058         (WebInspector.ObjectTreeView.prototype._updateProperties):
2059
2060
2061         Part 2: Provide better parameter lists for native functions.
2062
2063         When expanding an object's prototype chain, with authored code
2064         you will accurately see parameter lists for user authored functions
2065         because we can get this by parsing Function.prototype.toString.
2066         For native code, we don't get any parameter information. In such cases
2067         we can detect we are a native function, and provide our own strings.
2068
2069         This fills in most of the JavaScript built-ins and some DOM
2070         functions, however we should autogenerate the rest of the DOM.
2071
2072         * UserInterface/Base/Utilities.js:
2073         (isFunctionStringNativeCode):
2074         Helper to check if a function is native or not based on its string.
2075
2076         * UserInterface/Main.html:
2077         * UserInterface/Models/NativeFunctionParameters.js: Added.
2078         Dictionary of parameter lists for native constructor functions
2079         and prototype functions.
2080
2081         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2082         (WebInspector.ObjectTreePropertyTreeElement):
2083         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionPropertyString):
2084         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2085         (WebInspector.ObjectTreePropertyTreeElement.prototype):
2086         When we have a native function, try to provide a better parameter string.
2087
2088
2089         Part 3: Better handle errors when invoking getters.
2090
2091         * UserInterface/Protocol/RemoteObject.js:
2092         (WebInspector.RemoteObject.prototype.callFunction):
2093         (WebInspector.RemoteObject.prototype.invokeGetter):
2094         Pass the error, wasThrown, and result through to the caller so they can
2095         act on all the information possible. Provide encapsulation though
2096         and auto-convert the result to a RemoteObject for the callback.
2097
2098         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2099         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodeResolved):
2100         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._refreshProperties.nodePrototypesReady):
2101         * UserInterface/Views/DOMTreeElement.js:
2102         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.setTooltip):
2103         (WebInspector.DOMTreeElement.prototype._createTooltipForNode.resolvedNode):
2104         (WebInspector.DOMTreeElement.prototype._createTooltipForNode):
2105         Update current users of callFunctionOn for the new callback parameters.
2106
2107         * UserInterface/Views/ObjectTreePropertyTreeElement.css:
2108         (.object-tree-property.had-error > .icon):
2109         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2110         (WebInspector.ObjectTreePropertyTreeElement):
2111         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateHasChildren):
2112         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAndIcon):
2113         (WebInspector.ObjectTreePropertyTreeElement.prototype._createTitlePropertyStyle):
2114         (WebInspector.ObjectTreePropertyTreeElement.prototype._createInteractiveGetterElement.):
2115         Better style getters with errors.
2116
2117 2015-02-24  Joseph Pecoraro  <pecoraro@apple.com>
2118
2119         Web Inspector: Do not show "{}" after Date description in Object Previews
2120         https://bugs.webkit.org/show_bug.cgi?id=141898
2121
2122         Reviewed by Timothy Hatcher.
2123
2124         * UserInterface/Views/ObjectPreviewView.js:
2125         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2126         Only show "{...}" section for Date objects that have user
2127         defined properties. Otherwise, Dates do not have properties.
2128
2129 2015-02-23  Joseph Pecoraro  <pecoraro@apple.com>
2130
2131         Web Inspector: Remove unused console-object-preview styles - replaced by ObjectPreviewView
2132         https://bugs.webkit.org/show_bug.cgi?id=141945
2133
2134         Reviewed by Timothy Hatcher.
2135
2136         * UserInterface/Views/LogContentView.css:
2137         (.console-object-preview): Deleted.
2138         (.expanded .console-object-preview): Deleted.
2139         (.console-object-preview .name): Deleted.
2140         (.expanded .console-object-preview > .console-object-preview-body): Deleted.
2141         (.console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2142         (.console-object-preview-body .console-object-preview-name.console-object-preview-name-Object): Deleted.
2143         (.expanded .console-object-preview > .console-object-preview-name.console-object-preview-name-Object): Deleted.
2144
2145 2015-02-23  Saam Barati  <saambarati1@gmail.com>
2146
2147         Web Inspector: BasicBlockAnnotator ranges should be inclusive of both the start and end offset
2148         https://bugs.webkit.org/show_bug.cgi?id=141334
2149
2150         Reviewed by Timothy Hatcher.
2151
2152         * UserInterface/Views/TextEditor.js:
2153         (WebInspector.TextEditor.prototype.addStyleToTextRange):
2154
2155 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2156
2157         Web Inspector: Lazily Create GeneralTreeElement Status Elements
2158         https://bugs.webkit.org/show_bug.cgi?id=141873
2159
2160         Reviewed by Timothy Hatcher.
2161
2162         * UserInterface/Views/GeneralTreeElement.js:
2163         (WebInspector.GeneralTreeElement.prototype.set status):
2164         (WebInspector.GeneralTreeElement.prototype.onattach):
2165         (WebInspector.GeneralTreeElement.prototype._createElementsIfNeeded):
2166         (WebInspector.GeneralTreeElement.prototype._updateStatusElement):
2167         Lazily create and attach the status element container if
2168         "this.status" is actually used by a GeneralTreeElement subclass.
2169
2170         * UserInterface/Views/ResourceTreeElement.js:
2171         (WebInspector.ResourceTreeElement.prototype._updateStatus):
2172         Set to the empty string instead of null to avoid inadvertently
2173         creating status elements for no reason.
2174
2175 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2176
2177         Web Inspector: Give ObjectPreviewView a showTitle/showPreview toggle
2178         https://bugs.webkit.org/show_bug.cgi?id=141874
2179
2180         Reviewed by Timothy Hatcher.
2181
2182         Refactor ObjectTree/ObjectPreview a bit to make it easier
2183         to use expanding/collapsing previews in other places.
2184
2185         * UserInterface/Views/ObjectPreviewView.js:
2186         (WebInspector.ObjectPreviewView):
2187         (WebInspector.ObjectPreviewView.prototype.showTitle):
2188         (WebInspector.ObjectPreviewView.prototype.showPreview):
2189         Maintain both a titleElement and previewElement. Show only
2190         one at a time based on showTitle/showPreview APIs.
2191
2192         * UserInterface/Views/ObjectTreeView.css:
2193         (.object-tree.expanded .object-preview):
2194         * UserInterface/Views/ObjectTreeView.js:
2195         (WebInspector.ObjectTreeView):
2196         (WebInspector.ObjectTreeView.prototype.expand):
2197         (WebInspector.ObjectTreeView.prototype.collapse):
2198         If we have a preview, let PreviewView handle toggling
2199         between a title and preview display.
2200
2201 2015-02-22  Joseph Pecoraro  <pecoraro@apple.com>
2202
2203         Web Inspector: Make Console UI icons / lines slightly larger
2204         https://bugs.webkit.org/show_bug.cgi?id=141876
2205
2206         Reviewed by Timothy Hatcher.
2207
2208         In preparation for a new ObjectTree design with larger icons,
2209         increase the size of existing output in the Console / Log
2210         so they don't look so small in comparison. This:
2211
2212           - bumps minimum height of lines from 16px to 21px
2213           - 10x10 icons to be 12x12
2214           - recenters icons to match console prompt
2215           - realigns icons with console log / object output
2216
2217         * UserInterface/Views/LogContentView.css:
2218         (.console-user-command-result.console-log-level::before):
2219         (.console-message, .console-user-command):
2220         (.console-item::before):
2221         (.console-user-command::before):
2222         (:matches(.console-warning-level, .console-error-level, .console-log-level).console-message):
2223         (:matches(.console-warning-level, .console-error-level, .console-log-level)::before):
2224         (.outline-disclosure li):
2225         (.outline-disclosure .expanded li):
2226         Fix a case breaking single-line message height.
2227         Only add padding to expanded trees, not collapsed trees.
2228
2229         * UserInterface/Views/QuickConsole.css:
2230         (.quick-console > .console-prompt::before):
2231
2232 2015-02-21  Joseph Pecoraro  <pecoraro@apple.com>
2233
2234         Web Inspector: Generate Previews more often for RemoteObject interaction
2235         https://bugs.webkit.org/show_bug.cgi?id=141875
2236
2237         Reviewed by Timothy Hatcher.
2238
2239         * UserInterface/Models/PropertyDescriptor.js:
2240         (WebInspector.PropertyDescriptor.fromPayload):
2241         Fix InternalPropertyDescriptor ingestion. There was no ".internal"
2242         property on these objects, so take a flag.
2243
2244         * UserInterface/Protocol/RemoteObject.js:
2245         (WebInspector.RemoteObject.prototype._getPropertyDescriptors):
2246         Fix InternalPropertyDescriptor ingestion by specifying during
2247         importing the internal properties. Also, get previews.
2248
2249         (WebInspector.RemoteObject.prototype.callFunction):
2250         Always get previews when using callFunctionOn.
2251
2252 2015-02-20  Ronald Jett  <rjett@apple.com>
2253
2254         Web Inspector: Add a setting for clearing the console on page reload
2255         https://bugs.webkit.org/show_bug.cgi?id=134414
2256
2257         Reviewed by Timothy Hatcher.
2258
2259         Created a new setting "clear-log-on-reload", which defaults to true.
2260         Users can toggle this setting with an item added to the console's context menu. 
2261         When enabled, the console will clear on page reload. When disabled, the console
2262         content will remain during page reloads. 
2263
2264         * Localizations/en.lproj/localizedStrings.js:
2265         * UserInterface/Views/LogContentView.js:
2266         (WebInspector.LogContentView):
2267         (WebInspector.LogContentView.prototype._sessionStarted):
2268         (WebInspector.LogContentView.prototype._handleContextMenuEvent):
2269         (WebInspector.LogContentView.prototype._toggleClearLogOnReloadSetting):
2270
2271 2015-02-19  Saam Barati  <saambarati1@gmail.com>
2272
2273         Web Inspector: merge in upstream Esprima to support parsing more of ES6
2274         https://bugs.webkit.org/show_bug.cgi?id=141215
2275
2276         Reviewed by Timothy Hatcher.
2277
2278         This patch merges in a new esprima that has some ES6 support.
2279         Specifically, the ES6 support ScriptSyntaxTree now has is:
2280         - ForOf loops
2281         - Object destructuring
2282         - Array destructuring
2283
2284         ScriptSyntaxTree now uses Symbols for identifying AST node types
2285         instead of strings. This will prevent any direct usage of strings 
2286         for node types instead of a direct property access off the 
2287         ScriptSyntaxTree constructor.
2288
2289         This patch also does some gardening work: 
2290         - TypeTokenAnnotator only walks over the incoming type information
2291           data once to be more efficient. 
2292         - TypeTokenView is now smarter about updating its associated DOM node
2293           only if its display name has changed.
2294
2295         * UserInterface/Controllers/TypeTokenAnnotator.js:
2296         (WebInspector.TypeTokenAnnotator.prototype._insertTypeTokensForEachNode):
2297         * UserInterface/External/Esprima/esprima.js:
2298         (.):
2299         * UserInterface/Models/ScriptSyntaxTree.js:
2300         (WebInspector.ScriptSyntaxTree.prototype.gatherIdentifiersInVariableDeclaration):
2301         (WebInspector.ScriptSyntaxTree.prototype._recurse):
2302         (WebInspector.ScriptSyntaxTree.prototype._createInternalSyntaxTree):
2303         * UserInterface/Views/TypeTokenView.js:
2304         (WebInspector.TypeTokenView.prototype.update):
2305
2306 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2307
2308         Web Inspector: Use of Array.from for NodeList/Arguments to Array conversion
2309         https://bugs.webkit.org/show_bug.cgi?id=141819
2310
2311         Reviewed by Timothy Hatcher.
2312
2313         Array.from is clearer than Array.prototype.slice.call(arrayLike).
2314
2315         * UserInterface/Base/Test.js:
2316         (.console.logType):
2317         * UserInterface/Protocol/InspectorBackend.js:
2318         (InspectorBackend.Command.prototype.promise):
2319         (InspectorBackend.Command.prototype._invokeWithArguments):
2320         * UserInterface/Views/LogContentView.js:
2321         (WebInspector.LogContentView.prototype._allMessages):
2322
2323 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2324
2325         Follow-up fix to r180371. formatParameterAsValue expects full object, not just a description.
2326
2327         Reviewed by Timothy Hatcher.
2328
2329         * UserInterface/Views/ConsoleMessageImpl.js:
2330         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2331
2332 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2333
2334         Web Inspector: Introduce FormattedValue helpers and use them in Console/ObjectTree
2335         https://bugs.webkit.org/show_bug.cgi?id=141812
2336
2337         Reviewed by Timothy Hatcher.
2338
2339         There were a few different ways to get styled values. Try to consolidate them
2340         all in FormattedValue. That is also a convenient place to have the styles.
2341
2342         * UserInterface/Main.html:
2343         * UserInterface/Views/ConsoleMessageImpl.js:
2344         (WebInspector.ConsoleMessageImpl.prototype._formatMessage):
2345         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2346         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsValue):
2347         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString):
2348
2349         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
2350         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2351         (WebInspector.ConsoleMessageImpl.prototype._populateStackTraceTreeElement):
2352         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement): Deleted.
2353         Fix console.table after renaming ObjectPreview.properties to ObjectPreview.propertyPreviews.
2354         Also, use FormattedValue to create the value elements. Also, remove class
2355         "source-code" as I do not see it actually being used in a meaningful way.
2356
2357         * UserInterface/Views/FormattedValue.css: Added.
2358         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
2359         (.formatted-number):
2360         (.formatted-string, .formatted-regexp):
2361         (.formatted-string):
2362         (.formatted-regexp):
2363         (.formatted-symbol):
2364         (.formatted-null, .formatted-undefined):
2365         * UserInterface/Views/FormattedValue.js: Added.
2366         (WebInspector.FormattedValue.classNameForTypes):
2367         (WebInspector.FormattedValue.classNameForObject):
2368         (WebInspector.FormattedValue.createLinkifiedElementString):
2369         (WebInspector.FormattedValue.createElementForTypesAndValue):
2370         (WebInspector.FormattedValue.createElementForRemoteObject):
2371         (WebInspector.FormattedValue.createElementForObjectPreview):
2372         (WebInspector.FormattedValue.createElementForPropertyPreview):
2373         Styles and formatted value element creation.
2374
2375         * UserInterface/Views/LogContentView.css:
2376         (.expandable.source-code): Deleted.
2377         Remove ".source-code". I do not see it actually being used in a meaningful way.
2378
2379         * UserInterface/Views/ObjectPreviewView.js:
2380         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2381         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
2382         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview): Deleted.
2383         * UserInterface/Views/ObjectTreePropertyTreeElement.js:
2384         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
2385         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString): Deleted.
2386         * UserInterface/Views/ObjectTreeView.css:
2387         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap): Deleted.
2388         (.formatted-number): Deleted.
2389         (.formatted-string, .formatted-regexp): Deleted.
2390         (.formatted-string): Deleted.
2391         (.formatted-regexp): Deleted.
2392         (.formatted-symbol): Deleted.
2393         (.formatted-null, .formatted-undefined): Deleted.
2394         * UserInterface/Views/ObjectTreeView.js:
2395         (WebInspector.ObjectTreeView.classNameForObject): Deleted.
2396         Extract styles and value formatting to FormattedValue helpers.
2397
2398 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2399
2400         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
2401         https://bugs.webkit.org/show_bug.cgi?id=141793
2402
2403         Unreviewed follow-up. Fix prototypes.
2404
2405         * UserInterface/Views/ObjectPreviewView.js:
2406         * UserInterface/Views/ObjectTreeView.js:
2407
2408 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2409
2410         Web Inspector: Create Separate Model and View Objects for RemoteObjects / ObjectPreview / PropertyDescriptor
2411         https://bugs.webkit.org/show_bug.cgi?id=141696
2412
2413         Reviewed by Timothy Hatcher.
2414
2415         * UserInterface/Main.html:
2416         Add new files.
2417
2418         * UserInterface/Models/CollectionEntry.js: Added.
2419         (WebInspector.CollectionEntry):
2420         (WebInspector.CollectionEntry.fromPayload):
2421         (WebInspector.CollectionEntry.prototype.get key):
2422         (WebInspector.CollectionEntry.prototype.get value):
2423         * UserInterface/Models/CollectionEntryPreview.js: Added.
2424         (WebInspector.CollectionEntryPreview):
2425         (WebInspector.CollectionEntryPreview.fromPayload):
2426         (WebInspector.CollectionEntryPreview.prototype.get keyPreview):
2427         (WebInspector.CollectionEntryPreview.prototype.get valuePreview):
2428         * UserInterface/Models/ObjectPreview.js: Added.
2429         (WebInspector.ObjectPreview):
2430         (WebInspector.ObjectPreview.fromPayload):
2431         (WebInspector.ObjectPreview.prototype.get type):
2432         (WebInspector.ObjectPreview.prototype.get subtype):
2433         (WebInspector.ObjectPreview.prototype.get description):
2434         (WebInspector.ObjectPreview.prototype.get lossless):
2435         (WebInspector.ObjectPreview.prototype.get overflow):
2436         (WebInspector.ObjectPreview.prototype.get properties):
2437         (WebInspector.ObjectPreview.prototype.get entries):
2438         * UserInterface/Models/PropertyPreview.js: Added.
2439         (WebInspector.PropertyPreview):
2440         (WebInspector.PropertyPreview.fromPayload):
2441         (WebInspector.PropertyPreview.prototype.get name):
2442         (WebInspector.PropertyPreview.prototype.get type):
2443         (WebInspector.PropertyPreview.prototype.get subtype):
2444         (WebInspector.PropertyPreview.prototype.get value):
2445         (WebInspector.PropertyPreview.prototype.get valuePreview):
2446         * UserInterface/Models/PropertyDescriptor.js: Added.
2447         (WebInspector.PropertyDescriptor.fromPayload):
2448         (WebInspector.PropertyDescriptor.prototype.get name):
2449         (WebInspector.PropertyDescriptor.prototype.get value):
2450         (WebInspector.PropertyDescriptor.prototype.get writable):
2451         (WebInspector.PropertyDescriptor.prototype.get configurable):
2452         (WebInspector.PropertyDescriptor.prototype.get enumerable):
2453         (WebInspector.PropertyDescriptor.prototype.get isOwnProperty):
2454         (WebInspector.PropertyDescriptor.prototype.get wasThrown):
2455         (WebInspector.PropertyDescriptor.prototype.get isInternalProperty):
2456         (WebInspector.PropertyDescriptor.prototype.hasValue):
2457         (WebInspector.PropertyDescriptor.prototype.hasGetter):
2458         (WebInspector.PropertyDescriptor.prototype.hasSetter):
2459         New Model objects for different Protocol types.
2460         The only customizations right now are compatibility modifications
2461         and PropertyDescriptor's "hasValue", "hasGetter", and "hasSetter"
2462         functions to return reliable checks based on the descriptors contents.
2463
2464         * UserInterface/Protocol/RemoteObject.js:
2465         (WebInspector.RemoteObject):
2466         (WebInspector.RemoteObject.fromPayload):
2467         (WebInspector.RemoteObject.resolveNode):
2468         (WebInspector.RemoteObject.prototype.get value):
2469         (WebInspector.RemoteObject.prototype._isSymbol):
2470         (WebInspector.RemoteObject.prototype.isCollectionType):
2471         (WebInspector.RemoteObject.prototype.isWeakCollection):
2472         (WebInspector.RemoteObject.prototype.getCollectionEntries):
2473         (WebInspector.RemoteObject.prototype.arrayLength):
2474         Clean up the existing code to enforce more checks and use our
2475         style of member variables and public accessors.
2476
2477         (WebInspector.RemoteObject.prototype.getOwnPropertyDescriptors):
2478         (WebInspector.RemoteObject.prototype.getOwnAndGetterPropertyDescriptors):
2479         (WebInspector.RemoteObject.prototype.getAllPropertyDescriptors):
2480         (WebInspector.RemoteObject.prototype.callback):
2481         Provide a new way of getting properties that returns Model objects
2482         instead of raw protocol types.
2483
2484         * UserInterface/Views/ConsoleMessageImpl.js:
2485         (WebInspector.ConsoleMessageImpl.prototype._format):
2486         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2487         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
2488         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsNode):
2489         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
2490         (WebInspector.ConsoleMessageImpl.prototype._formatAsArrayEntry):
2491         Always include a preview when possible. Now, when forced to be an object,
2492         force expansion even if the preview is lossless.
2493
2494         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsObject):
2495         Use an ObjectTreeView instead of ObjectPropertiesSection.
2496
2497         (WebInspector.ConsoleMessageImpl.prototype._appendPreview): Deleted.
2498         (WebInspector.ConsoleMessageImpl.prototype._appendEntryPreviews): Deleted.
2499         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews): Deleted.
2500         (WebInspector.ConsoleMessageImpl.prototype._appendValuePreview): Deleted.
2501         This code is moved into ObjectPreviewView.
2502
2503
2504         * UserInterface/Views/ObjectPropertiesSection.js:
2505         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand.callback):
2506         (WebInspector.CollectionEntriesMainTreeElement.prototype.onexpand):
2507         These types are now converted to Model types in Model objects, so do not do it here.
2508
2509         * UserInterface/Views/ObjectPreviewView.css: Added.
2510         (.object-preview):
2511         (.object-preview.lossless):
2512         (.object-preview .name):
2513         * UserInterface/Views/ObjectPreviewView.js: Added.
2514         (WebInspector.ObjectPreviewView):
2515         (WebInspector.ObjectPreviewView.prototype.get preview):
2516         (WebInspector.ObjectPreviewView.prototype.get element):
2517         (WebInspector.ObjectPreviewView.prototype.get mode):
2518         (WebInspector.ObjectPreviewView.prototype.get lossless):
2519         (WebInspector.ObjectPreviewView.prototype._numberOfPropertiesToShowInMode):
2520         (WebInspector.ObjectPreviewView.prototype._appendPreview):
2521         (WebInspector.ObjectPreviewView.prototype._appendEntryPreviews):
2522         (WebInspector.ObjectPreviewView.prototype._appendPropertyPreviews):
2523         (WebInspector.ObjectPreviewView.prototype._appendValuePreview):
2524         (WebInspector.ObjectPreviewView.prototype._formattedObjectElementForPreview):
2525         An ObjectPreviewView can create a full/brief view given a ObjectPreview.
2526         The view will contain formatted values everywhere possible.
2527
2528         * UserInterface/Views/ObjectTreePropertyTreeElement.js: Added.
2529         (WebInspector.ObjectTreePropertyTreeElement):
2530         (WebInspector.ObjectTreePropertyTreeElement.prototype.get property):
2531         (WebInspector.ObjectTreePropertyTreeElement.prototype.onpopulate):
2532         (WebInspector.ObjectTreePropertyTreeElement.prototype.onattach):
2533         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitle):
2534         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitlePropertyStyle):
2535         (WebInspector.ObjectTreePropertyTreeElement.prototype._updateTitleAPIStyle):
2536         (WebInspector.ObjectTreePropertyTreeElement.prototype._descriptionString):
2537         (WebInspector.ObjectTreePropertyTreeElement.prototype._functionParameterString):
2538         (WebInspector.ObjectTreePropertyTreeElement.prototype.mode):
2539         (WebInspector.ObjectTreePropertyTreeElement.prototype):
2540         * UserInterface/Views/ObjectTreeView.js: Added.
2541         (WebInspector.ObjectTreeView):
2542         (WebInspector.ObjectTreeView.classNameForObject):
2543         (WebInspector.ObjectTreeView.ComparePropertyDescriptors):
2544         (WebInspector.ObjectTreeView.prototype.get object):
2545         (WebInspector.ObjectTreeView.prototype.get element):
2546         (WebInspector.ObjectTreeView.prototype.get expanded):
2547         (WebInspector.ObjectTreeView.prototype.expand):
2548         (WebInspector.ObjectTreeView.prototype.collapse):
2549         (WebInspector.ObjectTreeView.prototype.update):
2550         (WebInspector.ObjectTreeView.prototype._updateProperties):
2551         (WebInspector.ObjectTreeView.prototype._handlePreviewOrTitleElementClick):
2552         Re-implementation of ObjectPropertiesSection for our Model objects
2553         without "Section" semantics / dependencies. An ObjectTree will creates
2554         an expandable tree for a RemoteObject. The top level clickable item
2555         will be an ObjectPreview if possible, otherwise just a title element.
2556
2557         * UserInterface/Views/ObjectTreeView.css: Added.
2558         (.object-tree):
2559         (.object-tree > .title):
2560         (.object-tree > :matches(.title, .object-preview)::before):
2561         (.object-tree.expanded > :matches(.title, .object-preview)::before):
2562         (.object-tree.lossless-preview > :matches(.title, .object-preview)::before):
2563         (.object-tree-outline):
2564         (.object-tree.expanded > .object-tree-outline):
2565         (.object-tree-outline li):
2566         (.object-tree-outline li.parent):
2567         (.object-tree-outline li.parent::before):
2568         (.object-tree-outline li.parent.expanded::before):
2569         (.object-tree-outline ol):
2570         (.object-tree-outline ol.expanded):
2571         (.object-tree-outline li .empty-message):
2572         (.object-tree-property .name):
2573         (.object-tree-property .name.not-enumerable):
2574         (.object-tree-property .value.error):
2575         (.formatted-object, .formatted-node, .formatted-error, .formatted-map, .formatted-set, .formatted-weakmap):
2576         (.formatted-number):
2577         (.formatted-string, .formatted-regexp):
2578         (.formatted-string):
2579         (.formatted-regexp):
2580         (.formatted-symbol):
2581         (.formatted-null, .formatted-undefined):
2582         (.console-group-messages .object-tree:not(.lossless-preview)):
2583         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)):
2584         (.console-group-messages .object-tree:not(.lossless-preview) > :matches(.title, .object-preview)::before):
2585         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree):
2586         (.console-group-messages :matches(.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap) .object-tree-outline):
2587         All styles for ObjectTree / ObjectPreview. Independent from
2588         other styles in the inspector. Most of this is a copy of
2589         the styles applied to ObjectPropertiesSection, renamed.
2590
2591
2592         * UserInterface/Views/ObjectTreeCollectionTreeElement.js: Added.
2593         (WebInspector.ObjectTreeCollectionTreeElement):
2594         (WebInspector.ObjectTreeCollectionTreeElement.propertyDescriptorForEntry):
2595         (WebInspector.ObjectTreeCollectionTreeElement.prototype.get remoteObject):
2596         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand.callback):
2597         (WebInspector.ObjectTreeCollectionTreeElement.prototype.onexpand):
2598         (WebInspector.ObjectTreeCollectionTreeElement.prototype.oncollapse):
2599         (WebInspector.ObjectTreeCollectionTreeElement.prototype.ondetach):
2600         (WebInspector.ObjectTreeCollectionTreeElement.prototype._trackWeakEntries):
2601         (WebInspector.ObjectTreeCollectionTreeElement.prototype._untrackWeakEntries):
2602         (WebInspector.ObjectTreeCollectionEntryTreeElement):
2603         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onpopulate):
2604         (WebInspector.ObjectTreeCollectionEntryTreeElement.prototype.onattach):
2605         (WebInspector.ObjectTreeEmptyCollectionTreeElement):
2606         Essentially a copy of ObjectPropertiesSection Collection handling using
2607         the ObjectTree class names.
2608
2609         * UserInterface/Views/TreeOutlineDataGridSynchronizer.js:
2610         Fix prototype typo.
2611
2612 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2613
2614         Web Inspector: DOMTree / Node Details Sidebar do not update as <input> content changes
2615         https://bugs.webkit.org/show_bug.cgi?id=141790
2616
2617         Reviewed by Timothy Hatcher.
2618
2619         * UserInterface/Views/DOMNodeDetailsSidebarPanel.js:
2620         (WebInspector.DOMNodeDetailsSidebarPanel):
2621         (WebInspector.DOMNodeDetailsSidebarPanel.prototype._characterDataModified):
2622         Update Node "Value" details if character data changes.
2623
2624         * UserInterface/Views/DOMTreeUpdater.js:
2625         (WebInspector.DOMTreeUpdater.prototype._updateModifiedNodes):
2626         Update the title of the parent. If the parent had a single text node child
2627         and now doesn't, it will need to update its display.
2628
2629 2015-02-19  Joseph Pecoraro  <pecoraro@apple.com>
2630
2631         Web Inspector: Disable DOM Tree Editing / Styles Editing of Shadow DOM Nodes
2632         https://bugs.webkit.org/show_bug.cgi?id=141793
2633
2634         Reviewed by Timothy Hatcher.
2635
2636         Currently the backend disallows editing of Shadow DOM nodes,
2637         so the frontend should not provide options that do not work.
2638         Long term we should allow editing Shadow DOM nodes.
2639
2640         * UserInterface/Models/CSSStyleDeclaration.js:
2641         (WebInspector.CSSStyleDeclaration.prototype.get editable):
2642         Inline styles on a Shadow DOM node are not editable.
2643
2644         * UserInterface/Views/DOMTreeElement.js:
2645         (WebInspector.DOMTreeElement.prototype.ondelete):
2646         (WebInspector.DOMTreeElement.prototype._startEditingTarget):
2647         (WebInspector.DOMTreeElement.prototype._populateTagContextMenu):
2648         (WebInspector.DOMTreeElement.prototype._populateTextContextMenu):
2649         (WebInspector.DOMTreeElement.prototype._populateNodeContextMenu):
2650         (WebInspector.DOMTreeElement.prototype._startEditing):
2651         Disable context menus and keyboard shortcuts on Shadow DOM nodes.
2652         Only Context Menu item we keep is "Copy as HTML".
2653
2654         * UserInterface/Views/DOMTreeOutline.js:
2655         (WebInspector.DOMTreeOutline.prototype._contextMenuEventFired):
2656         (WebInspector.DOMTreeOutline.prototype.populateContextMenu):
2657         Eliminate double look-up.
2658
2659         * UserInterface/Views/RulesStyleDetailsPanel.js:
2660         (WebInspector.RulesStyleDetailsPanel.prototype.refresh.addNewRuleButton):
2661         Do not add the New Rule Button to the Styles Sidebar of Shadow DOM Nodes.
2662         Instead this will just be an empty divider.
2663
2664 2015-02-18  Nikita Vasilyev  <nvasilyev@apple.com>
2665
2666         Web Inspector: REGRESSION: Missing Divider line between console.log and console evaluation
2667         https://bugs.webkit.org/show_bug.cgi?id=141770
2668
2669         Reviewed by Timothy Hatcher.
2670
2671         * UserInterface/Views/LogContentView.css:
2672         (.console-item):
2673         (.console-message): Deleted.
2674
2675 2015-02-18  Jono Wells  <jonowells@apple.com>
2676
2677         Web Inspector: Inspecting a page where resources are in folders forces folder organization on every subsequent page
2678         https://bugs.webkit.org/show_bug.cgi?id=141397
2679
2680         Reviewed by Timothy Hatcher.
2681
2682         When removeChildren is called on an instance of a FolderizedTreeElement, the element's _groupedIntoFolders flag
2683         will now be set to false. This will prevent unnecessary folderization upon a frame navigation. Also during an
2684         onpopulate event, addChildForRepresentedObject is called repeatedly and much of the work done during each call
2685         was unnecessary. That work has now been partially removed and partially relocated to a function that is only
2686         called at the beginning of an onpopulate event.
2687
2688         * UserInterface/Views/FolderizedTreeElement.js:
2689         (WebInspector.FolderizedTreeElement.prototype.set removeChildren): Set _groupedIntoFolders to false.
2690         (WebInspector.FolderizedTreeElement.prototype.addChildForRepresentedObject): Remove unnecessary treeOutline
2691         emptiness check, and move _shouldGroupIntoFolders() check to new function prepareToPopulate().
2692         (WebInspector.FolderizedTreeElement.prototype.prepareToPopulate): Create.
2693         (WebInspector.FolderizedTreeElement.prototype._populateFromNewChildQueue): Call prepareToPopulate().
2694
2695         * UserInterface/Views/FrameTreeElement.js:
2696         (WebInspector.FrameTreeElement.prototype.onpopulate): Call prepareToPopulate().
2697
2698         * UserInterface/Views/GeneralTreeElement.js: Drive-by inheritance style fix.
2699         * UserInterface/Views/ResourceTreeElement.js: Drive-by inheritance style fix.
2700
2701 2015-02-16  Joseph Pecoraro  <pecoraro@apple.com>
2702
2703         Web Inspector: ES6: Improved Console Support for Promise Objects
2704         https://bugs.webkit.org/show_bug.cgi?id=141634
2705
2706         Reviewed by Timothy Hatcher.
2707
2708         * UserInterface/Protocol/RemoteObject.js:
2709         For now just add Internal Properties and regular properties.
2710         We will address the UI later.
2711
2712 2015-02-16  Nikita Vasilyev  <nvasilyev@apple.com>
2713
2714         Web Inspector: Tweak the styles on the Console
2715         https://bugs.webkit.org/show_bug.cgi?id=140580
2716
2717             - Use non-monospace (default sans-serif) font for console messages, but keep using monospace font
2718               for objects, functions, and anything else that presumably code.
2719             - Display all expandable objects on a separate row.
2720
2721         Reviewed by Timothy Hatcher.
2722
2723         * UserInterface/Views/ConsoleCommand.js:
2724         (WebInspector.ConsoleCommand.prototype.decorateMessageElement):
2725         (WebInspector.ConsoleCommand.prototype.toMessageElement):
2726         * UserInterface/Views/ConsoleGroup.js:
2727         (WebInspector.ConsoleGroup.prototype.addMessage):
2728         * UserInterface/Views/ConsoleMessageImpl.js:
2729         (WebInspector.ConsoleMessageImpl.prototype._format):
2730         (WebInspector.ConsoleMessageImpl.prototype._isExpandable):
2731         (WebInspector.ConsoleMessageImpl.prototype._formatParameter):
2732         (WebInspector.ConsoleMessageImpl.prototype.append):
2733         (WebInspector.ConsoleMessageImpl.prototype._formatWithSubstitutionString):
2734         (WebInspector.ConsoleMessageImpl.prototype.decorateMessageElement):
2735         (WebInspector.ConsoleMessageImpl.prototype.toMessageElement):
2736         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsString): Deleted.
2737         * UserInterface/Views/LogContentView.css:
2738         (.console-messages):
2739         (.console-formatted-object):
2740         (.expandable.source-code):
2741         (.console-message):
2742         (.console-item.selected::after):
2743         (.console-messages:focus .console-item.selected::after):
2744         (.console-user-command-result.console-log-level::before):
2745         (.console-item::before):
2746         (.console-message .bubble):
2747         (.console-error-level):
2748         (.console-error-level .section .header .title):
2749         (.console-error-level::before):
2750         (.console-warning-level):
2751         (.console-warning-level .console-message-text):
2752         (.console-warning-level::before):
2753         (.console-user-command::before):
2754         (.console-group-messages .section):
2755         (.console-group-messages .section .header::before):
2756         (.console-group-messages .section .header .title):
2757         (.console-formatted-object, .console-formatted-node, .console-formatted-error, .console-formatted-map, .console-formatted-set, .console-formatted-weakmap):
2758         (.outline-disclosure li):
2759         (.outline-disclosure li.parent::before):
2760         (.console-item): Deleted.
2761         (.console-item.selected): Deleted.
2762         (.console-messages:focus .console-item.selected): Deleted.
2763         (.console-item.selected .console-message::after): Deleted.
2764         (.console-messages:focus .console-item.selected .data-grid tr.selected): Deleted.
2765         (.console-messages:focus .console-item.selected .console-message::after): Deleted.
2766         (.console-message, .console-user-command): Deleted.
2767         (.console-message::before, .console-user-command::before, .javascript-prompt::before, .console-group-title::before): Deleted.
2768         (.console-group): Deleted.
2769         (.console-debug-level .console-message-text): Deleted.
2770         (.console-debug-level::before): Deleted.
2771         (.console-group-messages .section .header): Deleted.
2772         (.console-group-messages .outline-disclosure): Deleted.
2773         (.console-group-messages .outline-disclosure > ol): Deleted.
2774         (.outline-disclosure li.elements-drag-over .selection): Deleted.
2775         (.outline-disclosure ol:focus li.selected .selection): Deleted.
2776         (.outline-disclosure > ol): Deleted.
2777         * UserInterface/Views/LogContentView.js:
2778         (WebInspector.LogContentView.prototype._mousemove):
2779         (WebInspector.LogContentView.prototype._updateMessagesSelection):
2780         (WebInspector.LogContentView.prototype._isMessageVisible):
2781         (WebInspector.LogContentView.prototype._isMessageSelected):
2782         (WebInspector.LogContentView.prototype._selectAllMessages):
2783         (WebInspector.LogContentView.prototype._unfilteredMessages):
2784         (WebInspector.LogContentView.prototype._visibleMessages):
2785         (WebInspector.LogContentView.prototype._filterMessages):
2786         (WebInspector.LogContentView.prototype._leftArrowWasPressed):
2787         (WebInspector.LogContentView.prototype._propertiesSectionDidUpdateContent):
2788         (WebInspector.LogContentView.prototype._performSearch):
2789         * UserInterface/Views/Section.css:
2790         (.section .header .title::before):
2791         (.section.expanded .header .title::before):
2792         (.section .header .title, .event-bar .header .title):
2793         (.properties-tree li.parent::before):
2794         (.section .header::before): Deleted.
2795         (.section.expanded .header::before): Deleted.
2796
2797 2015-02-15  Brian J. Burg  <burg@cs.washington.edu>
2798
2799         Web Inspector: remove unused XHR replay code
2800         https://bugs.webkit.org/show_bug.cgi?id=141622
2801
2802         Reviewed by Timothy Hatcher.
2803
2804         * UserInterface/Protocol/Legacy/7.0/InspectorBackendCommands.js:
2805         * UserInterface/Protocol/Legacy/8.0/InspectorBackendCommands.js:
2806         * Versions/Inspector-iOS-7.0.json:
2807         * Versions/Inspector-iOS-8.0.json:
2808
2809 2015-02-14  Joseph Pecoraro  <pecoraro@apple.com>
2810
2811         Web Inspector: Remove specificity approximation
2812         https://bugs.webkit.org/show_bug.cgi?id=141600
2813
2814         Reviewed by Timothy Hatcher.
2815
2816         * Localizations/en.lproj/localizedStrings.js:
2817         * UserInterface/Views/CSSStyleDeclarationSection.js:
2818         (WebInspector.CSSStyleDeclarationSection.prototype.refresh.appendSelector):
2819
2820 2015-02-13  Timothy Hatcher  <timothy@apple.com>
2821
2822         Web Inspector: support better git diff of localizedStrings.js
2823         https://bugs.webkit.org/show_bug.cgi?id=137237
2824
2825         Reviewed by Joseph Pecoraro.
2826
2827         * .gitattributes: Added.
2828
2829 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
2830
2831         Web Inspector: add keyboard shortcut to enable/disable all breakpoints
2832         https://bugs.webkit.org/show_bug.cgi?id=141527
2833
2834         Reviewed by Joseph Pecoraro.
2835
2836         * Localizations/en.lproj/localizedStrings.js:
2837         * UserInterface/Views/DebuggerSidebarPanel.js:
2838         (WebInspector.DebuggerSidebarPanel): Bind Command/Control + Y to toggle breakpoints button.
2839
2840 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
2841
2842         Web Inspector: support adding and removing timelines to the timeline sidebar panel and overview
2843         https://bugs.webkit.org/show_bug.cgi?id=138434
2844
2845         Reviewed by Timothy Hatcher.
2846
2847         A timeline recording's timelines should not be static. This patch adds relevant machinery to
2848         dynamically add and remove timelines from the Timeline model object and its various views.
2849
2850         From the model side, this is a simple change that adds TimelineAdded and TimelineRemoved events.
2851         The timeline views and timeline sidebar require more extensive changes to support this functionality.
2852         Instead of keeping a fixed set of timeline tree elements, the sidebar view now adds and removes
2853         tree elements to reflect the available timelines for the displayed timeline recording.
2854
2855         This change also includes several minor cleanups, such as appending 'Element' to view properties that
2856         are DOM elements, and renaming TimelineContentView to TimelineRecordingContentView.
2857
2858         * UserInterface/Controllers/TimelineManager.js:
2859         (WebInspector.TimelineManager.prototype._loadNewRecording):
2860         Populate predefined network, layout, and script timelines here after constructing the recording.
2861
2862         * UserInterface/Main.html:
2863         * UserInterface/Models/Timeline.js:
2864         Move hardcoded class names and localized strings to these base class methods. This is not implemented
2865         using overridden methods because not all timeline types have their own subclasses. Add a dummy
2866         implementation of saveIdentityToCookie() to avoid warnings when saving sidebar panel selection state.
2867
2868         (WebInspector.Timeline.prototype.get type):
2869         (WebInspector.Timeline.prototype.get displayName): Added.
2870         (WebInspector.Timeline.prototype.get iconClassName): Added.
2871         (WebInspector.Timeline.prototype.addRecord):
2872         * UserInterface/Models/TimelineRecording.js:
2873         (WebInspector.TimelineRecording):
2874         (WebInspector.TimelineRecording.prototype.addTimeline.set timeline): Added.
2875         (WebInspector.TimelineRecording.prototype.addTimeline): Added.
2876         (WebInspector.TimelineRecording.prototype.removeTimeline.get this): Added.
2877         (WebInspector.TimelineRecording.prototype.removeTimeline): Added.
2878         * UserInterface/Views/ContentView.js:
2879         (WebInspector.ContentView):
2880         * UserInterface/Views/LayoutTimelineView.css:
2881         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle):
2882         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.layout .item .subtitle): Deleted.
2883         * UserInterface/Views/LayoutTimelineView.js:
2884         (WebInspector.LayoutTimelineView.prototype._treeElementSelected):
2885         (WebInspector.LayoutTimelineView.prototype._closeStatusButtonClicked):
2886         * UserInterface/Views/NavigationSidebarPanel.js:
2887         (WebInspector.NavigationSidebarPanel.prototype.saveStateToCookie): Fix error message formatting.
2888         (WebInspector.NavigationSidebarPanel.prototype._updateFilter):
2889         * UserInterface/Views/NetworkTimelineView.css:
2890         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle):
2891         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.network .item .subtitle): Deleted.
2892         * UserInterface/Views/NetworkTimelineView.js:
2893         (WebInspector.NetworkTimelineView.prototype._closeStatusButtonClicked):
2894         * UserInterface/Views/ScriptTimelineView.css:
2895         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle):
2896         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing .navigation-sidebar-panel-content-tree-outline.script .item .subtitle): Deleted.
2897         * UserInterface/Views/ScriptTimelineView.js:
2898         (WebInspector.ScriptTimelineView.prototype._treeElementSelected):
2899         (WebInspector.ScriptTimelineView.prototype._closeStatusButtonClicked):
2900         * UserInterface/Views/TimelineOverview.js:
2901         Convert this class to use the representedObject class pattern. It manages its own mapping from timelines
2902         to overview graph views. Append 'Element' to some properties holding DOM elements.
2903         (WebInspector.TimelineOverview):
2904         (WebInspector.TimelineOverview.prototype.get visibleDuration):
2905         (WebInspector.TimelineOverview.prototype.reset):
2906         (WebInspector.TimelineOverview.prototype.updateLayout):
2907         (WebInspector.TimelineOverview.prototype._handleScrollEvent):
2908         (WebInspector.TimelineOverview.prototype._handleWheelEvent):
2909         (WebInspector.TimelineOverview.prototype._timelineRemoved):
2910         (WebInspector.TimelineOverview.prototype.updateLayoutIfNeeded):
2911         (WebInspector.TimelineOverview.prototype._timeRangeSelectionChanged):
2912         * UserInterface/Views/TimelineRecordingContentView.css: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.css.
2913         Remove hard-coded top offsets and heights that need to be dynamically calculated.
2914         (.content-view.timeline-recording > .timeline-overview):
2915         (.content-view.timeline-recording > .view-container):
2916         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid td):
2917         (.content-view.timeline-recording > .view-container > .timeline-view > .data-grid table.data):
2918         * UserInterface/Views/TimelineRecordingContentView.js: Renamed from Source/WebInspectorUI/UserInterface/Views/TimelineContentView.js.
2919         Manage timeline views and path components dynamically. Adjust view heights as necessary. Append 'Element'
2920         to some properties holding DOM elements.
2921         (WebInspector.TimelineRecordingContentView):
2922         (WebInspector.TimelineRecordingContentView.prototype.showOverviewTimelineView):
2923         (WebInspector.TimelineRecordingContentView.prototype.showTimelineViewForTimeline):
2924         (WebInspector.TimelineRecordingContentView.prototype.get allowedNavigationSidebarPanels):
2925         (WebInspector.TimelineRecordingContentView.prototype.get supportsSplitContentBrowser):
2926         (WebInspector.TimelineRecordingContentView.prototype.get navigationItems):
2927         (WebInspector.TimelineRecordingContentView.prototype.get currentTimelineView):
2928         (WebInspector.TimelineRecordingContentView.prototype.shown):
2929         (WebInspector.TimelineRecordingContentView.prototype.hidden):
2930         (WebInspector.TimelineRecordingContentView.prototype.filterDidChange):
2931         (WebInspector.TimelineRecordingContentView.prototype.updateLayout):
2932         (WebInspector.TimelineRecordingContentView.prototype.saveToCookie):
2933         (WebInspector.TimelineRecordingContentView.prototype.restoreFromCookie):
2934         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters.checkTimeBounds):
2935         (WebInspector.TimelineRecordingContentView.prototype.get matchTreeElementAgainstCustomFilters):
2936         (WebInspector.TimelineRecordingContentView.prototype._pathComponentSelected):
2937         (WebInspector.TimelineRecordingContentView.prototype._timelineViewSelectionPathComponentsDidChange):
2938         (WebInspector.TimelineRecordingContentView.prototype._showTimelineView):
2939         (WebInspector.TimelineRecordingContentView.prototype._update):
2940         (WebInspector.TimelineRecordingContentView.prototype._updateTimes):
2941         (WebInspector.TimelineRecordingContentView.prototype._startUpdatingCurrentTime):
2942         (WebInspector.TimelineRecordingContentView.prototype._stopUpdatingCurrentTime):
2943         (WebInspector.TimelineRecordingContentView.prototype._capturingStarted):
2944         (WebInspector.TimelineRecordingContentView.prototype._capturingStopped):
2945         (WebInspector.TimelineRecordingContentView.prototype._debuggerPaused):
2946         (WebInspector.TimelineRecordingContentView.prototype._debuggerResumed):
2947         Fix a minor regression where we make a useless call to stop updating the time.
2948
2949         (WebInspector.TimelineRecordingContentView.prototype._recordingTimesUpdated):
2950         (WebInspector.TimelineRecordingContentView.prototype._clearTimeline):
2951         (WebInspector.TimelineRecordingContentView.prototype._timelineRemoved):
2952         (WebInspector.TimelineRecordingContentView.prototype._timelineCountChanged):
2953         (WebInspector.TimelineRecordingContentView.prototype._recordingReset):
2954         (WebInspector.TimelineRecordingContentView.prototype._recordingUnloaded):
2955         (WebInspector.TimelineRecordingContentView.prototype._timeRangeSelectionChanged):
2956         * UserInterface/Views/TimelineSidebarPanel.css:
2957         (.sidebar > .panel.navigation.timeline.timeline-recording-content-view-showing > .content):
2958         (.sidebar > .panel.navigation.timeline.timeline-content-view-showing > .content): Deleted.
2959         * UserInterface/Views/TimelineSidebarPanel.js:
2960         Manage timeline tree elements dynamically. Adjust view heights as necessary. Append 'Element'
2961         to some properties holding DOM elements. Keep track of the displayed recording and view explicitly.
2962         (WebInspector.TimelineSidebarPanel):
2963         (WebInspector.TimelineSidebarPanel.prototype.shown):
2964         (WebInspector.TimelineSidebarPanel.prototype.showDefaultContentView):
2965         (WebInspector.TimelineSidebarPanel.prototype.treeElementForRepresentedObject.looselyCompareRepresentedObjects):
2966         (WebInspector.TimelineSidebarPanel.prototype.showTimelineOverview):
2967         (WebInspector.TimelineSidebarPanel.prototype.updateFilter):
2968         (WebInspector.TimelineSidebarPanel.prototype.matchTreeElementAgainstCustomFilters):
2969         (WebInspector.TimelineSidebarPanel.prototype.canShowDifferentContentView):
2970         (WebInspector.TimelineSidebarPanel.prototype.saveStateToCookie):
2971         (WebInspector.TimelineSidebarPanel.prototype.get if):
2972         (WebInspector.TimelineSidebarPanel.prototype._contentBrowserCurrentContentViewDidChange):
2973         (WebInspector.TimelineSidebarPanel.prototype._recordingCountChanged):
2974         (WebInspector.TimelineSidebarPanel.prototype._recordingSelected):
2975         (WebInspector.TimelineSidebarPanel.prototype._recordingLoaded):
2976         (WebInspector.TimelineSidebarPanel.prototype._timelineRemoved):
2977         (WebInspector.TimelineSidebarPanel.prototype._timelineCountChanged):
2978         (WebInspector.TimelineSidebarPanel.createTimelineTreeElement): Deleted.
2979         (WebInspector.TimelineSidebarPanel.prototype.restoreStateFromCookie):
2980         * UserInterface/Views/TimelineView.css:
2981         (.panel.navigation.timeline.timeline-recording-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline):
2982         (.panel.navigation.timeline.timeline-content-view-showing > .content > .navigation-sidebar-panel-content-tree-outline): Deleted.
2983
2984 2015-02-12  Brian J. Burg  <burg@cs.washington.edu>
2985
2986         Web Inspector: Large background image fails to load in inspector
2987         https://bugs.webkit.org/show_bug.cgi?id=141405
2988
2989         Reviewed by Timothy Hatcher.
2990
2991         Convert base64-encoded resource data to binary data using Uint8Array and Blobs.
2992         Use object URLs for blobs instead of data URLs when setting image 'src' attribute
2993         and in @font-face urls. This conversion happens when the backend indicates that
2994         resource content is base64-encoded.
2995
2996         Update image and font clients of resource-fetching functionality so that they use
2997         object URLs correctly. Add some plumbing so that Blobs can be constructed with
2998         the correct mime-type.
2999
3000         * UserInterface/Base/Utilities.js:
3001         (decodeBase64ToBlob): Added.
3002         * UserInterface/Models/CSSStyleSheet.js:
3003         (WebInspector.CSSStyleSheet.prototype.get mimeType): Added.
3004         * UserInterface/Models/Resource.js:
3005         (WebInspector.Resource.prototype.createObjectURL): Added.
3006         (WebInspector.Resource.prototype.getImageSize.imageDidLoad):
3007         (WebInspector.Resource.prototype.getImageSize):
3008         (WebInspector.Resource.prototype.get contentURL): Deleted.
3009         * UserInterface/Models/Script.js:
3010         (WebInspector.Script.prototype.get mimeType): Added.
3011         * UserInterface/Models/SourceCode.js:
3012         (WebInspector.SourceCode.prototype.get mimeType): Added.
3013         (WebInspector.SourceCode.prototype._processContent):
3014         (WebInspector.SourceCode.prototype.get contentIsBase64Encoded): Deleted.
3015         * UserInterface/Models/SourceCodeRevision.js:
3016         (WebInspector.SourceCodeRevision):
3017         (WebInspector.SourceCodeRevision.prototype.copy):
3018         (WebInspector.SourceCodeRevision.prototype.get contentIsBase64Encoded): Deleted.
3019         (WebInspector.SourceCodeRevision.prototype.set contentIsBase64Encoded): Deleted.
3020         * UserInterface/Views/FontResourceContentView.js:
3021         (WebInspector.FontResourceContentView.prototype.hidden):
3022         (WebInspector.FontResourceContentView.prototype.closed):
3023         * UserInterface/Views/ImageResourceContentView.js:
3024         (WebInspector.ImageResourceContentView.prototype.contentAvailable):
3025
3026 2015-02-11  Nikita Vasilyev  <nvasilyev@apple.com>
3027
3028         Web Inspector: REGRESSION: Clicking selected item in the sidebar second time should scroll to the corresponding line
3029         https://bugs.webkit.org/show_bug.cgi?id=140280
3030
3031         Reviewed by Brian Burg.
3032
3033         * UserInterface/Views/ContentViewContainer.js:
3034         (WebInspector.ContentViewContainer.prototype.showContentView):
3035         Perform scolling regardless of the navigation history. Since scrolling source code doesn't introduce a BackForwardEntry,
3036         it's possible that the actual content view has a different scroll position.
3037
3038 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
3039
3040         Web Inspector: Better handle unknown release versions
3041         https://bugs.webkit.org/show_bug.cgi?id=141454
3042
3043         Reviewed by Timothy Hatcher.
3044
3045         * UserInterface/Base/Platform.js:
3046         If given an unknown Mac OS X version, at least parse
3047         the version number in WebInspector.Platform.
3048
3049 2015-02-10  Nikita Vasilyev  <nvasilyev@apple.com>
3050
3051         Web Inspector: Make collapsed sidebars undraggable
3052         https://bugs.webkit.org/show_bug.cgi?id=140664
3053
3054         Reviewed by Timothy Hatcher.
3055
3056         * UserInterface/Views/Sidebar.css:
3057         (.sidebar.collapsed):
3058         (.sidebar.collapsed.right > .resizer): Deleted.
3059         (.sidebar.collapsed.left > .resizer): Deleted.
3060         * UserInterface/Views/Sidebar.js:
3061         (WebInspector.Sidebar):
3062         (WebInspector.Sidebar.prototype._resizerMouseDown):
3063         (WebInspector.Sidebar.prototype._resizerMouseMoved):
3064         (WebInspector.Sidebar.prototype._resizerDoubleClicked): Deleted.
3065
3066 2015-02-10  Joseph Pecoraro  <pecoraro@apple.com>
3067
3068         Web Inspector: CSS Pretty Printing: still fails fails to put space between rgb(...) and numbers in minified gradients
3069         https://bugs.webkit.org/show_bug.cgi?id=141411
3070
3071         Reviewed by Timothy Hatcher.
3072
3073         * Tools/PrettyPrinting/CodeMirrorFormatters.js:
3074         * UserInterface/Views/CodeMirrorFormatters.js:
3075         Token actually was "number m-css" so we should check token strings
3076         more robustly, like elsewhere in the formatters.
3077
3078 2015-02-09  Brian J. Burg  <burg@cs.washington.edu>
3079
3080         Web Inspector: Uncaught exception when reporting wrong backend command call signature
3081         https://bugs.webkit.org/show_bug.cgi?id=141401
3082
3083         Reviewed by Joseph Pecoraro.
3084
3085         * UserInterface/Protocol/InspectorBackend.js:
3086         (InspectorBackend.Command.prototype._invokeWithArguments): Fix wrong variable name.
3087
3088 2015-02-06  Jono Wells  <jonowells@apple.com>
3089
3090         Web Inspector: REGRESSION: CSS Resource appears as empty after editing it via Styles sidebar
3091         https://bugs.webkit.org/show_bug.cgi?id=140586
3092
3093         Reviewed by Timothy Hatcher.
3094
3095         Update SourceCode#_processContent to properly handle the promise returned from CSSAgent so that the content
3096         will properly update when a style has changed. Properly clear the existing _requestContentPromise on the
3097         stylesheet so that the content will update correctly.
3098
3099         * UserInterface/Controllers/CSSStyleManager.js: Drive-by style updates.
3100         (WebInspector.CSSStyleManager.prototype._fetchInfoForAllStyleSheets):
3101         * UserInterface/Models/CSSStyleSheet.js: Drive-by inheritance style update.
3102         (WebInspector.CSSStyleSheet.prototype.requestContentFromBackend): Remove unnecessary backend promise function call.
3103         * UserInterface/Models/Resource.js: Drive-by removal of unused variable.
3104         * UserInterface/Models/SourceCode.js:
3105         (WebInspector.SourceCode.prototype.markContentAsStale): Clear _requestContentPromise.
3106         (WebInspector.SourceCode.prototype._processContent): Handle `parameters.text` correctly.
3107
3108 2015-02-04  Jono Wells  <jonowells@apple.com>
3109
3110         Web Inspector: REGRESSION: Inline SourceMap resources show empty content when opened.
3111         https://bugs.webkit.org/show_bug.cgi?id=141225
3112
3113         Reviewed by Timothy Hatcher.
3114
3115         Change WebInspector.SourceMapResource.prototype.requestContentFromBackend to correctly and consistently handle
3116         calls to NetworkAgent. The helper function sourceMapResourceLoaded will now properly handle parameters as a single
3117         payload, including manual calls in the case where the source map content is in a data URI. Also
3118         WebInspector.SourceCode.prototype._processContent now properly handles an error string used for displaying
3119         resource loading error messages in the resource content view.
3120
3121         * UserInterface/Models/Resource.js: drive-by style fix.
3122
3123         * UserInterface/Models/SourceCode.js:
3124         (WebInspector.SourceCode.prototype._processContent):
3125         Properly handle error string.
3126
3127         * UserInterface/Models/SourceMapResource.js:
3128         (WebInspector.SourceMapResource.prototype.requestContentFromBackend):
3129         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoaded):
3130         Formerly sourceMapResourceLoadError, now handles parameters from the NetworkAgent correctly.
3131
3132         (WebInspector.SourceMapResource.prototype.requestContentFromBackend.sourceMapResourceLoadError):
3133         This function now handles NetworkAgent errors only.
3134
3135 2015-02-05  Brian J. Burg  <burg@cs.washington.edu>
3136
3137         Web Inspector: eliminate some unnecessary layout/painting in timeline overview and ruler
3138         https://bugs.webkit.org/show_bug.cgi?id=141293
3139
3140         Reviewed by Timothy Hatcher.
3141
3142         The timeline overview's ruler was forcing repaints of divider labels even if the labels
3143         had not changed since the last requestAnimationFrame. Bail out early if nothing changed.
3144
3145         The timeline overview and its graphs were updating layout using requestAnimationFrame
3146         even when the TimelineContentView is not visible. Fix this by propagating visibility
3147         changes to subviews, and not updating layout when hidden.
3148
3149         The above change also fixes an assertion sometimes encountered when the timeline view
3150         tries to cache an element's offset width, but cannot because it isn't visible.
3151
3152         * UserInterface/Views/TimelineContentView.js:
3153         (WebInspector.TimelineContentView.prototype.shown):
3154         (WebInspector.TimelineContentView.prototype.hidden):
3155         * UserInterface/Views/TimelineOverview.js:
3156         (WebInspector.TimelineOverview.prototype.get visible):
3157         (WebInspector.TimelineOverview.prototype.shown):
3158         (WebInspector.TimelineOverview.prototype.hidden):
3159         (WebInspector.TimelineOverview.prototype._needsLayout):
3160         * UserInterface/Views/TimelineOverviewGraph.js:
3161         (WebInspector.TimelineOverviewGraph.prototype.get visible):
3162         (WebInspector.TimelineOverviewGraph.prototype.shown):
3163         (WebInspector.TimelineOverviewGraph.prototype.hidden):
3164         (WebInspector.TimelineOverviewGraph.prototype.needsLayout):
3165         * UserInterface/Views/TimelineRuler.js:
3166         (WebInspector.TimelineRuler.prototype.updateLayout):
3167
3168 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3169
3170         Web Inspector: ES6: Improved Console Support for Symbol Objects
3171         https://bugs.webkit.org/show_bug.cgi?id=141173
3172
3173         Reviewed by Timothy Hatcher.
3174
3175         * UserInterface/Protocol/RemoteObject.js:
3176         (WebInspector.RemoteObject):
3177         (WebInspector.RemoteObject.prototype._isSymbol):
3178         Symbols have an objectId because it is a non-primitive that cannot be passed
3179         by value, however it cannot have properties, so handle some cases.
3180
3181         * UserInterface/Views/LogContentView.css:
3182         (.console-formatted-symbol):
3183         Give Symbol's their own color.
3184
3185 2015-02-04  Nikita Vasilyev  <nvasilyev@apple.com>
3186
3187         Web Inspector: Insertion bar (caret) is hidden behind the placeholder text in the style editor
3188         https://bugs.webkit.org/show_bug.cgi?id=139659
3189
3190         Reviewed by Timothy Hatcher.
3191
3192         * UserInterface/Views/CSSStyleDeclarationTextEditor.css:
3193         (.css-style-text-editor > .CodeMirror .CodeMirror-placeholder):
3194         Use non-monospace font to fit the placeholder text on a single line and
3195         match the color if the native placeholder.
3196
3197 2015-02-04  Joseph Pecoraro  <pecoraro@apple.com>
3198
3199         Web Inspector: console.table with columnName filter for non-existent property should still show column
3200         https://bugs.webkit.org/show_bug.cgi?id=141066
3201
3202         Reviewed by Timothy Hatcher.
3203
3204         * UserInterface/Views/ConsoleMessageImpl.js:
3205         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
3206         (WebInspector.ConsoleMessageImpl.prototype._userProvidedColumnNames):
3207         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
3208         If a second argument was provided to console.table, try to extract a list
3209         of string names to use for the object properties. Output a table with
3210         the provided column names, in the specified order. Also, use this
3211         opportunity to mark missing properties with an em dash.
3212
3213 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
3214
3215         Web Inspector: CSS Autocompletion: Autodetect many color supporting properties
3216         https://bugs.webkit.org/show_bug.cgi?id=141166
3217
3218         Reviewed by Timothy Hatcher.
3219
3220         * UserInterface/Base/Utilities.js:
3221         Add String.prototype.endsWith. Group String extensions together.
3222
3223         * UserInterface/Models/CSSKeywordCompletions.js:
3224         (WebInspector.CSSKeywordCompletions.forProperty):
3225         If a property name ends in "color", provide CSS color completions.
3226
3227         (WebInspector.CSSKeywordCompletions.isColorAwareProperty): Deleted.
3228         This was unused and disagrees slightly with the implementation above.
3229
3230 2015-02-02  Joseph Pecoraro  <pecoraro@apple.com>
3231
3232         Web Inspector: Support console.table
3233         https://bugs.webkit.org/show_bug.cgi?id=141058
3234
3235         Reviewed by Timothy Hatcher.
3236
3237         * Localizations/en.lproj/localizedStrings.js:
3238         New "Index", "(Index)", "Value", table header strings.
3239
3240         * UserInterface/Views/ConsoleMessage.js:
3241         Add "Table", but add FIXMEs to consider using the protocol generated enums.
3242
3243         * UserInterface/Views/ConsoleMessageImpl.js:
3244         (WebInspector.ConsoleMessageImpl.prototype._format):
3245         Special case console.table messages.
3246
3247         (WebInspector.ConsoleMessageImpl.prototype._appendPropertyPreviews):
3248         (WebInspector.ConsoleMessageImpl.prototype._propertyPreviewElement):
3249         Factor out ProjectPreview printing. Also, replace newlines in strings
3250         with return characters, like we did elsewhere.
3251
3252         (WebInspector.ConsoleMessageImpl.prototype._formatParameterAsTable):
3253         Ultimately try to create a DataGrid from the output. Search first
3254         for rich object data in the list. If no rich object data is found
3255         just check for simple values. If the table is lossy, also do
3256         a log of the object in case the user wants to see more data.
3257
3258
3259         * UserInterface/Views/DataGrid.js:
3260         (WebInspector.DataGrid):
3261         The for..in enumeration is unordered and may not give us the
3262         column ordering we wanted. So include an optional preferred
3263         column names list to get the preferred order.
3264
3265         (WebInspector.DataGrid.createSortableDataGrid):
3266         Numerous bug fixes here. Accidental globals, typos, and sorting failures.
3267