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