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