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