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