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